大多数关于在Python中压缩文件的教程都涉及立即将该文件写入磁盘而没有插入压缩的python对象 . 我想知道如何在内存中腌制然后压缩python对象而无需写入或读取磁盘 .
bz2.compress(pickle.dumps(some_object))
我用它来在一个地方节省内存:
import cPickle import zlib # Compress: compressed = zlib.compress(cPickle.dumps(obj)) # Get it back: obj = cPickle.loads(zlib.decompress(compressed))
如果 obj 引用了许多小对象,则可以减少批量使用的内存量 . 由于每个对象的内存开销以及内存碎片,Python中的许多小对象都会加起来 .
obj
包括电池 .
>>> zlib.compress(pickle.dumps([42])) 'x\x9c\xd3\xc8)0\xe0\xf241\xe2J\xd4\x03\x00\x10A\x02\x87'
3 回答
我用它来在一个地方节省内存:
如果
obj
引用了许多小对象,则可以减少批量使用的内存量 . 由于每个对象的内存开销以及内存碎片,Python中的许多小对象都会加起来 .包括电池 .