首页 文章

压缩内存中的Python对象

提问于
浏览
9

大多数关于在Python中压缩文件的教程都涉及立即将该文件写入磁盘而没有插入压缩的python对象 . 我想知道如何在内存中腌制然后压缩python对象而无需写入或读取磁盘 .

3 回答

  • 3
    bz2.compress(pickle.dumps(some_object))
    
  • 17

    我用它来在一个地方节省内存:

    import cPickle
    import zlib
    
    # Compress:
    compressed = zlib.compress(cPickle.dumps(obj))
    
    # Get it back:
    obj = cPickle.loads(zlib.decompress(compressed))
    

    如果 obj 引用了许多小对象,则可以减少批量使用的内存量 . 由于每个对象的内存开销以及内存碎片,Python中的许多小对象都会加起来 .

  • 4

    包括电池 .

    >>> zlib.compress(pickle.dumps([42]))
    'x\x9c\xd3\xc8)0\xe0\xf241\xe2J\xd4\x03\x00\x10A\x02\x87'
    

相关问题