OVH Cloud OVH Cloud

liste dans fichier

6 réponses
Avatar
pikatxu
bonjour,
est ce qu'il existe une fonction pour enregistrer une liste directement
dans un fichier, et inversement pour charger une liste depuis un fichier.

Genre un équivalent au delphi/freepascal :

TstringList.SaveToFile()
TstringList.LoadFromFile()

merci.

6 réponses

Avatar
tiissa
pikatxu wrote:
est ce qu'il existe une fonction pour enregistrer une liste directement
dans un fichier, et inversement pour charger une liste depuis un fichier.


Il existe le module pickle [1] qui permet de le faire et pas seulement
sur les listes.

[1]http://docs.python.org/lib/module-pickle.html

Avatar
J.Pierre Pourrez
Le Sat, 21 May 2005 17:00:18 +0200, tiissa a écrit :

pikatxu wrote:
est ce qu'il existe une fonction pour enregistrer une liste directement
dans un fichier, et inversement pour charger une liste depuis un
fichier.


Il existe le module pickle [1] qui permet de le faire et pas seulement sur
les listes.

[1]http://docs.python.org/lib/module-pickle.html


Utiliser plutôt le module shelve est plus simple:

http://www.python.org/doc/2.4/lib/module-shelve.html

Cordialement
Jean-Pierre


Avatar
tiissa
J.Pierre Pourrez wrote:

pikatxu wrote:

est ce qu'il existe une fonction pour enregistrer une liste directement
dans un fichier, et inversement pour charger une liste depuis un
fichier.


Il existe le module pickle [1] qui permet de le faire et pas seulement sur
les listes.



Utiliser plutôt le module shelve est plus simple:


Pas plus compliqué, certes ; mais plus simple, il ne faut pas exagérer :

pickle.dump(open('fichier','w'),maliste)
shelve.open('fichier')['maliste']=maliste

maliste=pickle.load(open('fichier'))
maliste=shelve.open('fichier')['maliste']

S'il veut vraiment ne faire qu'enregistrer ou charger une liste dans un
fichier, c'est de pickle dont il a besoin, pas d'un mécanisme de
persistence façon base de données qui utilise pickle pour faire le stockage.

Par contre, il est bien sûr utile de connaître shelve pour savoir quand
on en a besoin.



Avatar
Do Re Mi chel La Si Do
Bonsoir !

Je suis assez d'accord ; car Pickle (ou cPickle) donne un meilleur contrôle.

Par exemple, je m'en sert pour transférer un objet via TCP/IP?, après une
compression à la volée, du genre :
TCPconnexion.send(zlib.compress(cPickle.dumps(obj,1)))

Mais shelve n'est pas à négliger, dès qu'il y a besoin de manipuler
plusieurs objets.


@-salutations

Michel Claveau
Avatar
pikatxu
S'il veut vraiment ne faire qu'enregistrer ou charger une liste dans un
fichier, c'est de pickle dont il a besoin, pas d'un mécanisme de
persistence façon base de données qui utilise pickle pour faire le
stockage.

Par contre, il est bien sûr utile de connaître shelve pour savoir quand
on en a besoin.



ok merci pour les infos, j'avais déjà survolé la doc des pickles mais
j'avais pas compris grand chose.
sinon la persistance c¡'est quoi ?

Avatar
Do Re Mi chel La Si Do
Bonsoir

La Persistance, c'est conserver les informations, entre des sessions
successives (de Python).
En simplifiant, c'est sauvegarder dans un fichier.

@-salutations

Michel Claveau