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 :

Ecrire dans un fichier une liste de liste


Sujet :

Python

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    69
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 69
    Par défaut Ecrire dans un fichier une liste de liste
    Bonjour,

    Alors voilà mon problème:
    en fait, dans une fonction j'ai créé uns liste de liste de caractères.

    Puis, je voudrais dans un fichier d'écriture donc "w", copier cette fameuse liste de listes.

    J'ai donc mis
    ....
    file.writelines(xxx)
    où xxx est le nom de ma liste de listes.

    Seulement, il ne veut pas et me dit que cette liste doit etre une liste de str et non pas une liste de listes de str....
    comment faire?

    juste pour préciser: ce que j'appelle une liste de str c'est de la forme: [' ',' ',' ']
    et une liste de listes de str, c'est de la forme: [[' ',' ',' '],[' ',' ',' ']]

    Merci beaucoup.

  2. #2
    Membre Expert Avatar de pacificator
    Profil pro
    Inscrit en
    Août 2006
    Messages
    1 074
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 1 074
    Par défaut
    La solution a ton problème est dans la

  3. #3
    Membre expérimenté Avatar de alexdevl
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    265
    Détails du profil
    Informations personnelles :
    Âge : 56
    Localisation : France, Loire (Rhône Alpes)

    Informations forums :
    Inscription : Avril 2007
    Messages : 265
    Par défaut Avec ''for''
    Il est possible de parcourir la première list avec for :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
     
    ldl=[["00","01"],["10","11"]]
    f=open("test.txt",'w')
    for l in ldl:
        f.writelines(l)
        #f.write('\n') #(si besoin)
    f.close()

  4. #4
    Membre chevronné Avatar de Pierre Maurette
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    283
    Détails du profil
    Informations personnelles :
    Âge : 69
    Localisation : France

    Informations forums :
    Inscription : Juillet 2002
    Messages : 283
    Par défaut
    Citation Envoyé par Victoria007 Voir le message
    Bonjour,

    Alors voilà mon problème:
    en fait, dans une fonction j'ai créé uns liste de liste de caractères.
    Puis, je voudrais dans un fichier d'écriture donc "w", copier cette fameuse liste de listes.

    J'ai donc mis
    ....
    file.writelines(xxx)
    où xxx est le nom de ma liste de listes.

    Seulement, il ne veut pas et me dit que cette liste doit etre une liste de str et non pas une liste de listes de str....
    comment faire?

    juste pour préciser: ce que j'appelle une liste de str c'est de la forme: [' ',' ',' ']
    et une liste de listes de str, c'est de la forme: [[' ',' ',' '],[' ',' ',' ']]
    C'est un peu flou, tout ça. Vous auriez fait un print d'un 'xxx' pas trop long, c'eut été plus clair.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    #Liste de chaines (ou de caractères, c'est pareil
    l1 = ['Hello', 'World']
    l2 = ['H', 'e', 'l', 'l', 'o']
     
    #Listes de listes de chaines, ou de caractères, c'est pareil
    l3 = [['H', 'e', 'l', 'l', 'o'], ['W', 'o', 'r', 'l', 'd']]
    l4 = [['Hello', 'World'], ['Bonjour', 'Monde']]
     
    #Essayez:
    print 'Hello' #Chaine
    print list('Hello') #Liste de caractères (= liste de chaines de len() == 1)
    print ''.join(list(['H', 'e', 'l', 'l', 'o'])) #Chaine
     
    #générer les listes de chaines propres à être écrites avec writelines
    L1 = l1
    L2 = [''.join(l2)]
    L3 = [''.join([''.join(lettre) for lettre in mot]) for mot in l3]
    L4 = [''.join(lettre) for mot in l4 for lettre in mot]
     
    print L1
    print L2
    print L3
    print L4
    Si vous voulez sauver vos chaines à un format lisible, vous devriez vous en sortir avec tout ça.
    Si vous voulez juste sauver votre bouzin pour le récuoérer ensuite, il suffit de sérialiser, pickle se démerde avec le type de votre objet:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    #! /usr/bin/env python
    # -*- coding: utf-8 -*-
     
    import pickle
     
    testliste = [['pierre', 'paul', 'jacques'],[1, 2, 3, [1, 2, 3]],[1, 2, 3, [1, 2, 3, 12]]]
     
    #Sauvegarder
    pickle.dump(testliste, open('pickletest', 'wb'))
     
    #Récupérer
    testliste = pickle.load(open('pickletest', 'rb'))
    print testliste

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    69
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 69
    Par défaut
    J'ai utilisé la méthode de alexdevl et ça marche.
    J'ai qqchose du style:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    def nom(code):
    	file=open(Nom_fichier,"w")
    	for i in code:
    		file.writelines(i)
    		file.write("\n")
    	file.close()
    (mon Nom_fichier se rapport à un argument)
    Et ça marche.
    Merci beaucoup à tous !

Discussions similaires

  1. ecrire dans un fichier une immense quantité de données
    Par Platon d'athene dans le forum C
    Réponses: 8
    Dernier message: 09/03/2012, 15h00
  2. Ecrire dans un fichier à une ligne donnée
    Par Matt014 dans le forum Langage
    Réponses: 4
    Dernier message: 08/06/2011, 21h11
  3. Ecrire dans un fichier une image et un texte (un tableau)
    Par GatH7614 dans le forum Collection et Stream
    Réponses: 4
    Dernier message: 04/11/2010, 10h32
  4. Réponses: 3
    Dernier message: 19/09/2008, 09h46
  5. Écrire dans un fichier à une place précise
    Par alliance dans le forum Langage
    Réponses: 15
    Dernier message: 26/08/2006, 23h08

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