La maggior parte dei tutorial sulla compressione di un file in Python comporta la scrittura immediata del file su disco senza alcun oggetto python compresso. Voglio sapere come mettere sottosopra e poi comprimere un oggetto python in memoria senza mai scrivere o leggere dal disco.Comprimi oggetti Python in memoria
7
A
risposta
14
Io lo uso per risparmiare memoria in un unico luogo:
import cPickle
import zlib
# Compress:
compressed = zlib.compress(cPickle.dumps(obj))
# Get it back:
obj = cPickle.loads(zlib.decompress(compressed))
Se obj
ha riferimenti a un certo numero di piccoli oggetti, questo può ridurre la quantità di memoria utilizzata da un sacco. Un sacco di piccoli oggetti in Python si sommano a causa del sovraccarico della memoria per oggetto e della frammentazione della memoria.
3
bz2.compress(pickle.dumps(some_object))
4
Batterie incluse.
>>> zlib.compress(pickle.dumps([42]))
'x\x9c\xd3\xc8)0\xe0\xf241\xe2J\xd4\x03\x00\x10A\x02\x87'
Problemi correlati
- 1. Python - Comprimi stringa Ascii
- 2. Comprimi (riduci) HTML da Python
- 3. PHP Crea più file CSV in memoria, quindi comprimi
- 4. Comprimi Javascript in Windows
- 5. database in memoria in Python
- 6. Oggetti PHP che rimangono in memoria
- 7. Utilizzo della memoria Python: quale dei miei oggetti sta registrando più memoria?
- 8. Perdita di memoria in Python Twisted: dov'è?
- 9. Bootstrap annidato Comprimi con eventi solo sul genitore Comprimi
- 10. jsTree Node Espandi/comprimi
- 11. errore di memoria in python
- 12. Rilascio di memoria in Python
- 13. Comprimi video come Whatsapp
- 14. Comprimi file Log4j
- 15. Comprimi gruppo jqGrid
- 16. Xamarin - Comprimi il testo
- 17. Comprimi HTTP Risposta GET
- 18. Capire gli oggetti in Python
- 19. Come posso liberare esplicitamente memoria in Python?
- 20. Allocazione di memoria per loop in python
- 21. Comprimi C# block in cshtml e salvalo
- 22. Comprimi solo #regioni (!) In C# (Visual Studio)
- 23. Registri mappati in memoria in Python
- 24. Mapping memoria Python
- 25. Perdite di memoria Python
- 26. Memoria VM Limit Python
- 27. Oggetti Python da oggetti esistenti usando __new__
- 28. Espandi e comprimi celle tableview
- 29. Comprimi un file con RAR
- 30. Memorizzazione Pandas oggetti con oggetti Python regolari in HDF5
Non è possibile comprimere un oggetto, AFAIK. È * possibile * comprimere * la rappresentazione * di un oggetto (serializzato, ad esempio). La rappresentazione più ovvia sarebbe una stringa, quindi potresti voler controllare [questa domanda] (http://stackoverflow.com/questions/8506897/how-do-i-gzip-compress-a-string-in-python/ 8513981 # 8513981) – goncalopp
Ok, quindi come faccio a decapitare e quindi comprimere la rappresentazione in memoria? – Michael
Compressione con quale tecnica di compressione? Ci sono più tra cui scegliere. –