Python-构造一个类似于另一个pickle文件的文件
我有(29.60 MB),并想pickle另一个文件,将类似于其结构 我有以下用于取消勾选文件的脚本:Python-构造一个类似于另一个pickle文件的文件,python,pickle,Python,Pickle,我有(29.60 MB),并想pickle另一个文件,将类似于其结构 我有以下用于取消勾选文件的脚本: import _pickle as cPickle def unpickle(file): fo = open(file, 'rb') dict = cPickle.load(fo, encoding='latin1') fo.close() return dict content = unpickle('batch') output_file = ope
import _pickle as cPickle
def unpickle(file):
fo = open(file, 'rb')
dict = cPickle.load(fo, encoding='latin1')
fo.close()
return dict
content = unpickle('batch')
output_file = open('content.txt', 'w')
output_file.write(str(content))
我想问的是:
1。我有两个图像,一个叫做image1.jpg
,另一个叫做image2.jpg
,其中image1.jpg
会有标签1
,而image2.jpg
会有标签2
基于上面的文件,pickle文件是什么样子的(如果您可以演示的话)
2.如何编写Python代码,以类似于上述文件的结构对数据进行pickle处理
谢谢。很简单。Pickle-lib的功能类似于任何其他数据序列化库(如json),其额外功能是能够(反)序列化本机Python对象 如果您有一个dict,您希望与示例文件类似地进行pickle处理,只需调用
pickle.dump(my_dict)
et voilá,您就有了可以写入文件的二进制数据
如果您询问pickle文件是如何构造的,下面是如何构造的:您有一个包含四个键的dict:
>>> pickled_dict.keys()
['data', 'labels', 'batch_label', 'filenames']
- “标签”是一个0-9范围内10000个数字的列表李>
- “批次标签”是字符串“培训批次1,共5个”李>
- “文件名”是包含10000个字符串(图像文件名)的列表李>
- “data”是一个由10000个数组组成的数组,每个数组的大小都是8位无符号整数。它是一个numpy.ndarray对象(numpy是一个用于处理二进制/数字数据矩阵的python库),我想它应该首先指示“图像”是如何加载的——可能只是以二进制模式加载并将字符逐个写入数组,但我只能在这里猜测
\uuu class\uuu
、keys()
、和len()
,而不是将其写回文件(我认为,数据部分失败)
希望这有所帮助。拾取的文件是python对象的二进制表示形式。你不应该知道这个文件是什么样子的。用例是什么?PS:您的导入看起来有问题。只需
import-cPickle
(对于python 2)或import-pickle
(对于python 3)谢谢您的回复。用例是,我想读取一个文件并返回其名称、数据和标签,如下所示:名称、数据、标签=cifar\u tools.read\u data('C:\\Users\\abc\\Desktop\\Testing'),因此您想查看pickle输出文件的内容,并从中确定该文件是什么,而不取消pickle?这是有道理的,但我不敢打赌这是可能的。不过我不知道。