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 :

enlever les sauts de ligne en .csv [Python 3.X]


Sujet :

Python

  1. #1
    Candidat au Club
    Homme Profil pro
    post-doctorant en chimie
    Inscrit en
    Septembre 2014
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : post-doctorant en chimie

    Informations forums :
    Inscription : Septembre 2014
    Messages : 3
    Points : 3
    Points
    3
    Par défaut enlever les sauts de ligne en .csv
    Bonjour tout le monde!!!

    Voilà j'ai un petit problème de copie d'un fichier .txt dans un fichier .csv, et je pense qu'il est bon de vous informer que je suis débutant en Python.

    Je m'explique, j'ai un fichier .txt contenant une colonne de valeurs comme présenté dans l'exemple ci-dessous:

    512.56
    13.4072
    530.89
    12.2854
    550.67
    11.0875
    577.59
    9.9835
    605.26
    9.0090
    631.49

    J'ai souhaité séparer les valeurs en gras dans une colonne 1 et les autres dans une autre, j'y suis parvenu avec le code suivant:

    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
    24
    25
    import os
    import csv
    import linecache
     
    input = open("size.txt", "r")
    output = open ("size_final.csv", "w")
     
    ecrire = csv.writer(output)
     
    ecrire.writerow(('Size','Strain'))
     
    lecture = input.readlines()
     
    i=1
    t=2
     
    while i <= len(lecture) and t<= len(lecture):
        v = linecache.getline('size.txt', i).rstrip("\n\r")
        w = linecache.getline('size.txt', t).rstrip("\n\r")
        ecrire.writerow((v,w))
        i = i + 2
        t = t + 2
     
    input.close()
    output.close()
    Le problème que je rencontre est que j’obtiens bien deux colonnes mais avec un saut de ligne entre chaque ligne comme présenté si dessous:

    Size,Strain

    512.56,13.4072

    530.89,12.2854

    550.67,11.0875

    577.59,9.9835

    605.26,9.0090

    Donc j'ai bien séparé mais valeurs en gras des autres cependant ce saut de ligne m’empêche de le lire correctement avec un éditeur graphique, comme excel ou origine par exemple.

    Voilà si quelqu'un à la solution parce que la je ne vois pas comment faire c'est peut etre mon code de départ qui ne va pas, mais comme je l'ai précisé je débute et il y a peut être des solution plus simple et plus efficace que je ne connait pas.

    Merci pour votre aide.
    Fichiers attachés Fichiers attachés
    • Type de fichier : py test.py (499 octets, 165 affichages)

  2. #2
    Membre averti
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2011
    Messages
    180
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2011
    Messages : 180
    Points : 321
    Points
    321
    Par défaut
    Salut

    Peux tu poster un code minimal fonctionnel ?

    Sans lui, mission impossible pour deviner ce qui ne va pas.

  3. #3
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 241
    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 241
    Points : 36 698
    Points
    36 698
    Par défaut
    Salut,

    J'ai remis le code dans votre message (quand ca ne fait que quelques lignes, c'est plus simple qu'un fichier à downloader).
    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  4. #4
    Candidat au Club
    Homme Profil pro
    post-doctorant en chimie
    Inscrit en
    Septembre 2014
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : post-doctorant en chimie

    Informations forums :
    Inscription : Septembre 2014
    Messages : 3
    Points : 3
    Points
    3
    Par défaut
    Merci wiztricks désolé!

    Pour chticricri est-ce que ces ce que tu me demandais?

  5. #5
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 241
    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 241
    Points : 36 698
    Points
    36 698
    Par défaut
    Salut,

    Un code minimal qui reproduise le pb serait de la forme:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    >>> import csv
    >>> f = open('foo.csv', 'w')
    >>> writer = csv.writer(f)
    >>> writer.writerow(('a','b'))
    5
    >>> writer.writerow((1,2))
    5
    >>> writer.writerow((1,2))
    5
    >>> f.close()
    >>> f = open('foo.csv', 'r')
    >>> f.read()
    'a,b\n\n1,2\n\n1,2\n\n'
    Après on relit la documentation du module csv et on se demande pourquoi ils s'appliquent à écrire leur "open" en précisant l'attribut newline=''.
    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  6. #6
    Candidat au Club
    Homme Profil pro
    post-doctorant en chimie
    Inscrit en
    Septembre 2014
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : post-doctorant en chimie

    Informations forums :
    Inscription : Septembre 2014
    Messages : 3
    Points : 3
    Points
    3
    Par défaut
    Salut,


    Merci beaucoup wiztricks, voilà mon problème résolu. Cependant, j'ai lu plusieurs tutoriel sur l'utilisation du module csv et je n'ai jamais vu l'attribut newline="".

    Merci pour ton aide.

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

Discussions similaires

  1. [MySQL] enlever les saut de lignes en php
    Par Dark Cid dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 07/01/2011, 10h37
  2. Enlever les sauts de ligne apres un strip_tags
    Par Cdic83 dans le forum Langage
    Réponses: 1
    Dernier message: 15/04/2009, 13h06
  3. [Mail] Les sauts de lignes pas pris en compte
    Par Anduriel dans le forum Langage
    Réponses: 15
    Dernier message: 14/12/2005, 20h13
  4. Réponses: 8
    Dernier message: 17/11/2005, 13h24
  5. [JtextArea] Transmetre les sauts de ligne à un fichier
    Par romuluslepunk dans le forum Composants
    Réponses: 4
    Dernier message: 04/08/2005, 22h34

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