Python中是否有任何模块可以在磁盘上获得与内存相同的数据大小?

时间:2013-04-23 10:59:07

标签: python pickle

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

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

1 个答案:

答案 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,它设计用于存储多个数组)。