[Python] Aggiornare file pickle

Riccardo Lemmi riccardo a reflab.com
Mar 10 Maggio 2011 15:12:21 CEST


Filadelfo Fiamma wrote:

> Buongiorno a tutti,
> 
> Avrei un quesito circa l'utilizzo del modulo pickle.
> L'obiettivo della mia applicazione è gestire un mini-database di file
> pickle, una volta che sono stati acquisiti i dati da altre fonti.
> Studiando il modulo ho individuato due metodi: dump() e load() che mi
> consentono di salvare su file e di leggere da file gli oggetti in
> questione. Molto spesso capita di dover salvare un oggetto una seconda
> volta dopo che è stato aggiornato, e tale scopo rieffettuo il dump().
> Mi chiedo se invece sia possibile aggiornare il file pickle, andando
> dunque a modificare e/o aggiungere solo delle specifiche parti
> piuttosto che effettuare il dump dell'intero oggetto?
> 
> Grazie mille
> 
> Buona giornata
> 
> FF

Ti consiglio di guardare lo ZODB. Fa sicuramente molte cose in più rispetto a
quello che ti serve ma puoi prendere spunto da lì per la gestione
dei 'salvataggi'.

Nello specifico lo ZODB usa pickle per la serializzazione, nel caso di un
oggetto composito esegue la serializzazione solo delle parti che sono cambiate;
le classi devono derivare dalla classe Persistent per fare in modo che lo ZODB
capisca cosa è cambiato e ogni oggetto cambiato viene serializzato
separatamente, ma lo ZODB gestisce anche i riferimenti tra gli oggetti in modo
che siano sempre validi... meglio se guardi il codice :)
-- 
                                       Riccardo Lemmi



Maggiori informazioni sulla lista Python