我试过泡菜,但磁盘上的大小非常大。我尝试了所有协议;磁盘上的输出文件大小大于内存中的大小。我正在使用以下代码:
#Here, a is a string.
def picklate(a):
picklist.append(a)
pickle.dump(a,picklefile,2)
编辑:刚刚写了这个答案而没有真正关注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
,它是为存储多个数组而设计的)。