Python中有没有任何模块可以让我在磁盘上获得和内存中相同大小的数据?

2024-10-01 02:24:59 发布

您现在位置:Python中文网/ 问答频道 /正文

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

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

Tags: 内存代码协议stringhereisdefdump
1条回答
网友
1楼 · 发布于 2024-10-01 02:24:59

编辑:刚刚写了这个答案,并没有真正注意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,它是为存储多个数组而设计的)。你知道吗

相关问题 更多 >