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 :

écrire un tableau en lignes


Sujet :

Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Inscrit en
    Septembre 2013
    Messages
    55
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Septembre 2013
    Messages : 55
    Par défaut écrire un tableau en lignes
    Bonjour,
    J'utilise python 2.7.3 et je suis débutant.
    Mon "fichier source" (result.txt) comporte des données écrites dans une colonne et je voudrais les récupérer pour écrire ces informations en ligne (d'abord dans la fenêtre de l'éditeur puis dans un autre fichier texte).
    J'ai essayé ça (entre autres):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    import sys
    fd = open('result.txt', 'r')
    lignes = fd.readlines()
    for i in range(0,149,5):
        print lignes[i],
        print lignes[i+1],
        print lignes[i+2],
        print lignes[i+3]
    #    sys.stdout.write(lignes[i]+lignes[i+1]),
    #    print lignes[i]+lignes[i+1]
    mais je n'arrive pas à mettre ces informations sur une même ligne.

    Je vous remercie d'avance

  2. #2
    Membre confirmé
    Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Décembre 2008
    Messages
    48
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Décembre 2008
    Messages : 48
    Par défaut
    Bonjour,

    Il me semble que la commande "print" va insérer un saut de ligne automatiquement à la fin de ta string.

    Je te conseil de créer ta string entièrement avant de l'afficher.
    Quelques exemples, plus ou moins recherchés:
    très simple,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    my_string = lignes[i] +','+lignes[i+1]+','+lignes[i+2]+','+lignes[i+3]
    print my_string
    un peu moins chiant à écrire,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    my_string = "%s,%s,%s,%s"%(lignes[i] ,lignes[i+1],lignes[i+2],lignes[i+3])
    print my_string
    finalement, avec le coolitude du python,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    my_string = ",".join(i)
    print my_string

  3. #3
    Expert confirmé
    Avatar de fred1599
    Homme Profil pro
    Lead Dev Python
    Inscrit en
    Juillet 2006
    Messages
    4 062
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Lead Dev Python
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2006
    Messages : 4 062
    Par défaut
    Écrire en ligne ? et on les sépare avec ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    fd = open('result.txt', 'r') 
    lignes = [ligne.srtip('\n') for ligne in fd.readlines()] # on vire les '\n' de chaque ligne
    fd.close()
    print(' '.join(lignes)) # séparation avec un espace

  4. #4
    Membre averti
    Homme Profil pro
    Inscrit en
    Septembre 2013
    Messages
    55
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Septembre 2013
    Messages : 55
    Par défaut
    Merci fred1599,
    J'ai testé ton script:
    lignes = [ligne.srtip('\n') for ligne in fd.readlines()] # on vire les '\n' de chaque ligne
    AttributeError: 'str' object has no attribute 'srtip'
    >>>
    Dommage

  5. #5
    Membre averti
    Homme Profil pro
    Inscrit en
    Septembre 2013
    Messages
    55
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Septembre 2013
    Messages : 55
    Par défaut
    Merci Alliaël,

    Décidément !
    Tes deux premiers scripts n'empèchent pas le retour à la ligne...
    et le dernier entraine un message d'erreur....

  6. #6
    Membre averti
    Homme Profil pro
    Inscrit en
    Septembre 2013
    Messages
    55
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Septembre 2013
    Messages : 55
    Par défaut
    en PJ: result.txt (pour test)

    Merci !
    Fichiers attachés Fichiers attachés

  7. #7
    Membre averti
    Homme Profil pro
    Inscrit en
    Septembre 2013
    Messages
    55
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Septembre 2013
    Messages : 55
    Par défaut
    fred1599:
    J'ai remplacé "ligne.srtip" par "ligne.strip": ça marche mieux !
    Merci

  8. #8
    Expert confirmé
    Avatar de fred1599
    Homme Profil pro
    Lead Dev Python
    Inscrit en
    Juillet 2006
    Messages
    4 062
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Lead Dev Python
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2006
    Messages : 4 062
    Par défaut
    Oui je l'ai fais à la mano, sans test, désolé, pas eu le temps de faire autrement...

  9. #9
    Membre averti
    Homme Profil pro
    Inscrit en
    Septembre 2013
    Messages
    55
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Septembre 2013
    Messages : 55
    Par défaut
    Grâce à votre aide:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    fd = open('result.txt', 'r') 
    lignes = [ligne.strip('\n') for ligne in fd.readlines()] # on vire les '\n' de chaque ligne
    fd.close()
    #print(' '.join(lignes)) # séparation avec un espace
    for i in range(0,149,5):
        print lignes[i]+' '+lignes[i+1]+' '+lignes[i+2]+' '+lignes[i+3]
    ça prend tournure....

    En fait, je souhaiterais arriver à un tableau .csv

Discussions similaires

  1. [CMS][PUBLICATION] Un CMS pour écrire un livre en ligne
    Par itanea dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 3
    Dernier message: 15/06/2011, 09h38
  2. VBA-Excel:Présentation d'un tableau (insertion ligne de légende)
    Par gabrielle_dl dans le forum Macros et VBA Excel
    Réponses: 20
    Dernier message: 15/06/2006, 11h11
  3. Écrire des retours à la ligne
    Par Metallic-84s dans le forum Langage
    Réponses: 2
    Dernier message: 15/03/2006, 09h05
  4. style pour tableau coloré ligne par ligne
    Par peppena dans le forum Balisage (X)HTML et validation W3C
    Réponses: 4
    Dernier message: 26/10/2005, 14h33
  5. Tableau 5 lignes * 3 colonnes
    Par slackjayo dans le forum Algorithmes et structures de données
    Réponses: 4
    Dernier message: 05/04/2005, 11h27

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