IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Python Discussion :

save list to file


Sujet :

Python

  1. #1
    Membre averti
    Inscrit en
    Décembre 2005
    Messages
    41
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 41
    Par défaut save list to file
    Bonjour
    Pour enregistre ma liste (my_list) dans un fichier (f).
    J'ai utilisé ce code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    import os
    f = open('......\\output.txt', 'a')
     
    my_list = ['developpez', 'France', 'Paris\n']
    line=f.writelines(my_list)
    f.close()
     
    f = open('......\\output.txt', 'r')
    for i in f:
    	print type (i)
    	print i
    Pour l'enregistrement aucun problème.
    Mais quand je veux lire mon fichier (f), le type n'est pas list mais str.
    Je cherche à enregistrer une liste (type list) et puis lire une liste (type list).

    merci.

  2. #2
    Expert confirmé

    Homme Profil pro
    Inscrit en
    Octobre 2008
    Messages
    4 307
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2008
    Messages : 4 307
    Par défaut
    Salut,

    Il faut utiliser le module pickle pour enregistrer des objets python

    Python 3
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    import pickle
     
    ...
     
    # Ecrire
    with open('......\\output.txt', wb) as outf:
        pickle.dump(my_list, outf)
     
    # Lire
    with open('......\\output.txt', rb) as inf:
        my_list = pickle.load(inf)

  3. #3
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 741
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 741
    Par défaut
    Salut,

    Citation Envoyé par zargooo04 Voir le message
    Mais quand je veux lire mon fichier (f), le type n'est pas list mais str.
    Je cherche à enregistrer une liste (type list) et puis lire une liste (type list).
    L'<<inverse>> de writelines est readlines.
    Ces deux méthodes, supposent que les "lignes" de la liste (chaines de caractères qui composent la liste) se terminent par une fin de ligne ('\n').
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    >>> L = ['developpez\n', 'France\n', 'Paris\n']
    >>> f = open('test.txt', 'w')
    >>> f.writelines(L)
    >>> f.close()
    >>> f = open('test.txt', 'r')
    >>> f.readlines()
    ['developpez\n', 'France\n', 'Paris\n']
    >>>>>> type(_)
    <class 'list'>
    >>>
    Dans tous les cas, ce qu'on écrit dans un fichier sera une suite de caractères: impossible d'en sortir autre chose sans faire des conventions pour "structurer" ces informations en traduisant liste, dictionnaire,.... et utiliser des bibliothèques json, xml, pickle,.... pour faire les conversions.

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  4. #4
    Membre averti
    Inscrit en
    Décembre 2005
    Messages
    41
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 41
    Par défaut oui
    Mais quand j'ouvre mon file je trouve cela
    (lp0
    S'developpez'
    p1
    aS'France'
    p2
    aS'Paris\n'
    p3
    a.

    Citation Envoyé par VinsS Voir le message
    Salut,

    Il faut utiliser le module pickle pour enregistrer des objets python

    Python 3
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    import pickle
     
    ...
     
    # Ecrire
    with open('......\\output.txt', wb) as outf:
        pickle.dump(my_list, outf)
     
    # Lire
    with open('......\\output.txt', rb) as inf:
        my_list = pickle.load(inf)

  5. #5
    Membre averti
    Inscrit en
    Décembre 2005
    Messages
    41
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 41
    Par défaut writelines
    Merci.
    Mais. Je ne veux pas faire \n à chaque fin de mot.
    Je pense que mon problème est dans la façon d'écrire dans le fichier.
    Car avec writelines() j'ai cela dans le file
    developpezFranceParis
    Tous les mots attachés.
    Citation Envoyé par wiztricks Voir le message
    Salut,



    L'<<inverse>> de writelines est readlines.
    Ces deux méthodes, supposent que les "lignes" de la liste (chaines de caractères qui composent la liste) se terminent par une fin de ligne ('\n').
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    >>> L = ['developpez\n', 'France\n', 'Paris\n']
    >>> f = open('test.txt', 'w')
    >>> f.writelines(L)
    >>> f.close()
    >>> f = open('test.txt', 'r')
    >>> f.readlines()
    ['developpez\n', 'France\n', 'Paris\n']
    >>>>>> type(_)
    <class 'list'>
    >>>
    Dans tous les cas, ce qu'on écrit dans un fichier sera une suite de caractères: impossible d'en sortir autre chose sans faire des conventions pour "structurer" ces informations en traduisant liste, dictionnaire,.... et utiliser des bibliothèques json, xml, pickle,.... pour faire les conversions.

    - W

  6. #6
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 741
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 741
    Par défaut
    Salut,

    Citation Envoyé par zargooo04 Voir le message
    Mais. Je ne veux pas faire \n à chaque fin de mot.
    Je pense que mon problème est dans la façon d'écrire dans le fichier.
    Car avec writelines() j'ai cela dans le file
    developpezFranceParis
    Tous les mots attachés.
    C'est une question de "protocole":
    - à respecter: vous ajoutez des '\n' comme dans mon exemple,
    - ou a améliorer: vous ajoutez les '\n' dynamiquement pour plaire à writelines/readlines et vous les retirez pour avoir la liste de départ.

    Et la différence entre ce que çà fait et ce que vous voulez faire, c'est les lignes de code à écrire pour que çà le fasse.

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  7. #7
    Membre averti
    Inscrit en
    Décembre 2005
    Messages
    41
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 41
    Par défaut write
    J'ai trouvé une solution

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    file.write(' '.join(liste))
    cela permet d'écrire la liste ('France', 'Paris', 'Université')
    avec un espace entre chaque mot

Discussions similaires

  1. Tableau, Liste, Piles, Files et Classes Java
    Par nouilletonne dans le forum Collection et Stream
    Réponses: 14
    Dernier message: 13/06/2015, 13h50
  2. zenity list from file
    Par barbican82 dans le forum Shell et commandes GNU
    Réponses: 5
    Dernier message: 25/03/2015, 14h19
  3. [Mapping] many-to-many list ordonnée
    Par Nertios dans le forum Hibernate
    Réponses: 1
    Dernier message: 05/06/2012, 13h33
  4. Aide sur les listes (pile/file)
    Par D2KBMH4 dans le forum Débuter
    Réponses: 7
    Dernier message: 17/01/2009, 18h08
  5. Sources.list et files
    Par Jean_Benoit dans le forum Debian
    Réponses: 4
    Dernier message: 28/03/2007, 11h39

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo