-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Il 11/05/2013 19:13, Gollum1 ha scritto: > Mi spiego meglio, sto costruendo un applicativo che lavora con file e > directory, in una struttura creata ad ok. vorrei fare in modo che se > qualcosa nell'elaborazione andasse storto tutte le modifiche fatte a > questa struttura venissero eliminate e si ritornasse alla situazione > precedente. >
Nel caso generale (qualsiasi tipo di modifiche) e accesso concorrente, è un problema molto complesso. Magari trovi qualcosa cercando "Transactional filesystem". > in una precedente versione del progetto, che stavo realizzando in > perl, avevo realizzato la funzione di rollback con un file di appoggio > dove scrivevo tutte le modifiche fatte, con il vantaggio che se il > programma si fosse bloccato, ad un successivo riavvio, trovando il > file di rollback, come prima operazione ripristinava comunque il > tutte... > Tieni conto che per operazioni semplice, esistono soluzioni più semplice ed efficienti. Ad esempio usando operazioni sul filesystem la cui esecuzione è garantite essere atomica da POSIX. Ad esempio rename, (però attendo che su Windows non è atomica, oppure l'apertura di un file in modalità esclusiva (sempre solo UNIX). In altri casi puoi usare la semantica COW (Copy On Write) dei "nuovi" filesystems più avanati, ad esempio copiando l'intera directory dove lavori, facendo modifiche e solo in caso di successo rinominare la vecchia directory in quella nuova (non testato, neppure in teoria). > [...] Ciao Manlio -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.10 (GNU/Linux) Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/ iEYEARECAAYFAlGPq2cACgkQscQJ24LbaURN4gCeOOhfLcp0XGL12a760iJpxKOB kTcAoIggq7DhLIUe2NkN6nDoYG0rUJ/5 =oR+R -----END PGP SIGNATURE----- _______________________________________________ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python