2010-11-19 5 views
3

Comment est-ce que je devrais empêcher la corruption dans un dossier de shelve? La tablette doit-elle être fermée la plupart du temps, puis ouverte uniquement lorsque j'ai besoin de lire ou de modifier une valeur?Empêcher la corruption de python shelve

+1

Ne pas utiliser l'étagère. Ça corrompt. Je suggère sqlite. – nosklo

+0

@nosklo est d'accord, ce n'est pas particulièrement fiable et son utilisation varie d'une plateforme à l'autre. –

Répondre

4

Si la sécurité de vos objets persistants est d'une grande importance dans votre projet, l'utilisation de shelve n'est pas une bonne idée. Il ne s'agit pas non plus de décaper les objets et de les écrire manuellement dans des fichiers. Considérons que de vraies bases de données investissent d'énormes ressources (intelligence et code) pour assurer la sécurité en cas de défaillance. Alors gardez vos données dans un vrai DB. Le plus simple serait sqlite, car il est livré avec Python. sqlite est assez sûr et a beaucoup de mal à garder vos données dans un état valide même en cas de défaillance du système (comme quand quelqu'un se déclenche sur le câble d'alimentation de votre PC).

+3

Serait une bonne option? http://pypi.python.org/pypi/shove – MKaras

+2

@metaguppy: shove ressemble à une approche intéressante, étant une interface vers d'autres outils comme sqlite et d'autres DB. J'envisagerais de l'utiliser, mais comme on ne le sait pas, je ne mettrais pas mes données les plus importantes sans des tests et des recherches sérieuses –

Questions connexes