On Tue, 10 May 2011 12:13:34 +0200, Filadelfo Fiamma <philosga...@gmail.com> wrote: > Il 10 maggio 2011 12:07, Daniele Varrazzo <p...@develer.com> ha scritto: >> On Tue, 10 May 2011 12:01:42 +0200, Filadelfo Fiamma >> <philosga...@gmail.com> wrote: >> >>> 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? >> >> No. Pickle non è un database, è uno stream. Puoi mettere il risultato di >> pickle in un database ma difficilmente puoi trattarlo in maniera diversa >> da >> un blob opaco. > > Capisco, tralasciando la difficoltà, la via da percorrere sarebbe la > modifica dei metodi __getstate__ e __setstate__ ?
No, forse non le hai capite :) Pickle si comporta come una sorta di framework: visita un grafo di oggetti e per ognuno ne estrae lo stato. Puoi personalizzare come il tuo oggetto viene salvato nel pickle implementando __get/setstate__, ma questo non modifica la strategia di visita né la scrittura del file. Pickle è uno stream, il che vuol dire che non chiede mai al file in cui scrivere "modifica i byte dal 100 al 103". Se lo facesse non potresti scrivere un pickle su stdout o leggerlo da stdin. Questo rende pickle un formato di serializzazione, non un database. -- Daniele Varrazzo - Develer S.r.l. http://www.develer.com _______________________________________________ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python