-1

我试过泡菜,但磁盘上的大小非常大。我尝试了所有协议;磁盘上的输出文件大小大于内存中的大小。我正在使用以下代码:

#Here, a is a string.
def picklate(a):
    picklist.append(a)
    pickle.dump(a,picklefile,2)
4

1 回答 1

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,它是为存储多个数组而设计的)。

于 2013-04-23T11:29:05.980 回答