C'è grandi risposte sopra per il motivo per cui pickle non funziona. Ma ancora non funziona con Python 2.7, che è un problema se si è ancora in Python 2.7 e si vuole supportare grandi file , in particolare NumPy (gli array NumPy oltre 4G falliscono).
È possibile utilizzare la serializzazione OC, che è stata aggiornata per funzionare per i dati su 4Gig. C'è a disposizione un modulo Python C Extension da:
http://www.picklingtools.com/Downloads
Date un'occhiata alla documentazione:
http://www.picklingtools.com/html/faq.html#python-c-extension-modules-new-as-of-picklingtools-1-6-0-and-1-3-3
Ma, ecco un breve riassunto: c'è ocdumps e ocloads, molto simile discariche e carichi ::
from pyocser import ocdumps, ocloads
ser = ocdumps(pyobject) : Serialize pyobject into string ser
pyobject = ocloads(ser) : Deserialize from string ser into pyobject
The OC Se del sottaceto la rializzazione è 1.5-2 volte più veloce e funziona anche con C++ (se stai mixando le lingue). Funziona con tutti i tipi built-in, ma non con le classi (in parte perché è cross-language ed è difficile creare classi C++ da Python).
Grazie! è possibile salvare file di grandi dimensioni su disco e aggirare questo limite? – Jake0x32
@ Jake0x32: non con pickle; questo è un limite difficile nel protocollo. Spezza l'oggetto 'bytes' in pezzi più piccoli. –
Gotcha! Grazie! – Jake0x32