我尝试过泡菜,但磁盘上的尺寸非常大。我尝试了所有的协议;磁盘上的输出文件大小超过内存中的大小。 我使用以下代码:
#Here, a is a string.
def picklate(a):
picklist.append(a)
pickle.dump(a,picklefile,2)
答案 0 :(得分:0)
编辑:刚刚写完这个答案而没有真正关注pickle实际保存的内容,很明显,对于字符串,pickle实际上与文件大小numpy
完全相同。也就是说,numpy.save
在存储二进制数据数据的一般情况下是好的,所以我将在这里留下这个答案。
numpy.save
可以很好地保持大小相同。
import string, random, numpy
mystring = ''.join(random.choice(string.lowercase) for i in range(1000000))
numpy.save('my_file', mystring)
你可以轻松地恢复它:
mystring = str(numpy.load('my_file.npy'))
如果您希望文件更小,您也可以使用numpy.savez_compressed
(虽然它的使用略有不同 - 如numpy.savez
,它设计用于存储多个数组)。