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 :

module csv : empiler données


Sujet :

Python

  1. #1
    Membre à l'essai
    Inscrit en
    Octobre 2009
    Messages
    24
    Détails du profil
    Informations forums :
    Inscription : Octobre 2009
    Messages : 24
    Points : 18
    Points
    18
    Par défaut module csv : empiler données
    Bonjour,

    Nouveau venu à python, j'admire ce langage mais je commence à sécher ! :

    Je cherche à empiler des données dans un fichier csv et ce même après réexecution du script (je veux partir de la fin du fichier csv).
    Pour faire un enregistrement de données au fil de l'eau.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    import csv
     
    c = csv.writer(open("toto.csv","w"),delimiter=';', quotechar='|', quoting=csv.QUOTE_MINIMAL)
     
    c.writerow(["titi","tata","toto"])
    Le problème, c'est que ca m'écrit toujours sur la première ligne.
    Ca ne fonctionne pas en empilage.

    Merci pour votre aide

  2. #2
    Membre averti
    Avatar de antoinev2
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    177
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 177
    Points : 376
    Points
    376
    Par défaut
    Bonjour,

    jusqu'à présent je n'ai utilisé le module csv qu'en lecture.

    pour écrire dans un fichier texte en allant à la ligne, sans utiliser le module csv :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    objFichDest = open(varCheminFichDest, 'w')
    objFichDest.write('ligne1\n')
    objFichDest.write('ligne2\n')
    objFichDest.write('ligne3\n')
    Une fonction nommée writerow devrait intégrer le retour à la ligne, mais essaie quand même avec antislash et n comme ci-dessus, des fois que...

  3. #3
    Membre émérite
    Avatar de DelphiManiac
    Homme Profil pro
    Homme à tout faire
    Inscrit en
    Mars 2002
    Messages
    1 147
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Homme à tout faire
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2002
    Messages : 1 147
    Points : 2 533
    Points
    2 533
    Par défaut
    Pour ajouter des données à un fichier, il faut utiliser le mode 'a' et non pas 'w'. Et pour information, ceci n'est pas spécifique à python, ni au module csv.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    import csv
     
    file = open ('toto.csv', 'a')
    c = csv.writer(file, delimiter=';', quotechar='|', quoting=csv.QUOTE_MINIMAL)
    c.writerow(["titi","tata","toto"])
    file.close()
    Si ce message vous a semblé utile, il est possible qu'il soit utile à d'autres personnes. Pensez au . Et n'oubliez pas le le moment venu !

    On n'a pas à choisir si l'on est pour ou contre la décroissance, elle est inéluctable, elle arrivera qu'on le veuille ou non.

  4. #4
    Membre à l'essai
    Inscrit en
    Octobre 2009
    Messages
    24
    Détails du profil
    Informations forums :
    Inscription : Octobre 2009
    Messages : 24
    Points : 18
    Points
    18
    Par défaut
    Merci à toi Delphimaniac

    c'est exactement ça !

    Bon, maintenant j'ai un autre souci, entre 2 séquences 'writerow', j'ai CR CR LF
    J'ai en fait un CR de trop !

  5. #5
    Membre émérite
    Avatar de DelphiManiac
    Homme Profil pro
    Homme à tout faire
    Inscrit en
    Mars 2002
    Messages
    1 147
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Homme à tout faire
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2002
    Messages : 1 147
    Points : 2 533
    Points
    2 533
    Par défaut
    Pour que cela fonctionne normalement, il faut ouvrir le fichier en mode 'binary'.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    import csv
     
    file = open ('toto.csv', 'a+b')
    c = csv.writer(file, delimiter=';', quotechar='|', quoting=csv.QUOTE_MINIMAL)
    c.writerow(["titi","tata","toto"])
    c.writerow(["titi","tata","toto"])
    print c.dialect
    file.close()
    Voir doc ici : http://docs.python.org/library/csv.html#csv.writer

    If csvfile is a file object, it must be opened with the ‘b’ flag on platforms where that makes a difference.
    Si ce message vous a semblé utile, il est possible qu'il soit utile à d'autres personnes. Pensez au . Et n'oubliez pas le le moment venu !

    On n'a pas à choisir si l'on est pour ou contre la décroissance, elle est inéluctable, elle arrivera qu'on le veuille ou non.

  6. #6
    Membre à l'essai
    Inscrit en
    Octobre 2009
    Messages
    24
    Détails du profil
    Informations forums :
    Inscription : Octobre 2009
    Messages : 24
    Points : 18
    Points
    18
    Par défaut RESOLU module CSV
    Merci DelphiManiac


    Bonne journée.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Module csv : comment enregistrer les données lues ?
    Par yoshik dans le forum Général Python
    Réponses: 5
    Dernier message: 06/07/2009, 11h20
  2. Module base de données
    Par bmercier dans le forum Bases de données
    Réponses: 2
    Dernier message: 06/10/2006, 10h15
  3. Probleme avec Module Base de données (dbd32.exe)
    Par mekdar dans le forum Bases de données
    Réponses: 3
    Dernier message: 25/10/2005, 13h45
  4. Problème d'execution de module bases de données
    Par mekdar dans le forum Bases de données
    Réponses: 1
    Dernier message: 15/10/2005, 17h29

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