L’erreur à ne pas faire avec shelve en Python

En Python, le module shelve est super pratique.

Il vous permet de gérer une base de donnée clef-valeur dans un seul fichier et de l’utiliser comme il s’agissait d’un simple dictionnaire.

En gros, vous avez un dictionnaire que vous utilisez et qui est directement mappé dans la base de donnée dans le fichier. Et vous pouvez mettre ce que vous voulez dedans. Des listes, des strings, des dicos, …

Pour ça rien de plus simple :

import shelve

with shelve.open("masuperdb") as db:
    db["test"] = "laurent"
    db["entiers"] = range(1000)

Simple, pratique, tout ce qu’on demande.

Mais l’erreur à ne pas faire se trouve juste ici :

import shelve

with shelve.open("masuperdb.db") as db:
    db["test"] = "laurent"
    db["entiers"] = range(1000)

Vous ne la voyez pas ?

Mais si, j’ai ajouté une extension au fichier de shelve !
Et ça, il ne faut surtout pas le faire car au sinon la DB est illisible après.

Je trouve ça, … disons … triste (pour rester poli).

Bref, si vous utilisez shelve, pensez y pour ne pas faire comme moi et perdre 3 jours de temps de calcul.

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *