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 :

transformer une liste de string contenant caractère et floats en une ligne séparée d'espaces


Sujet :

Python

  1. #1
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2014
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2014
    Messages : 23
    Par défaut transformer une liste de string contenant caractère et floats en une ligne séparée d'espaces
    Bonjour à tous!

    Je lis un fichier text 'infile' ligne par ligne, je transforme les lignes via le module 'split()'. Je voudrais ensuite réimprimer mes lignes dans le même format dans un nouveau fichier text 'outfile'.

    #infile
    camion 0.00E+00 1.200E+01 1.300E+05
    voiture 0.00E-05 4.7E-58 1.4e+05
    Une valeur est modifiée dans 'infile', j'obtiens donc:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    print line 
    >>['camion', '0.00E+00',  '1.44E+01',  '1.300E+05']
    >>['voiture', '0.00E-05',  '4.7E-58',       '1.4e+05']
    Je souhaite imprimé dans 'outfile' mes nouvelles listes.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    with open(modifiedFile, 'w') as outfile:
          with open(self.inputFiles) as infile:
            for line in infile:
                a = map(float, line)   ### retourne ValueError: invalid literal for float(): camion

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    a = map(float, line[1:])  ### transforme les caractère numériques en floats
    b = a + line[0]  ### TypeError: can only concatenate list (not "str") to list
    j'ai essayé aussi
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ' '.join(line)  ### ne fais rien
    avez-vous une solution ?

    merci beaucoup

  2. #2
    Expert confirmé
    Avatar de fred1599
    Homme Profil pro
    Lead Dev Python
    Inscrit en
    Juillet 2006
    Messages
    4 072
    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 072
    Par défaut
    Je lis un fichier text 'infile' ligne par ligne, je transforme les lignes via le module 'split()'. Je voudrais ensuite réimprimer mes lignes dans le même format dans un nouveau fichier text 'outfile'.
    La question est pourquoi faire la transformation str -> list pour faire par la suite list -> str ?

    j'ai essayé aussi
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ' '.join(line)  ### ne fais rien


    avez-vous une solution ?
    join fonctionne très bien, mais vous n'assignez pas de variable, vous ne verrez rien.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    >>> words = ['camion', '0.00E+00',  '1.44E+01',  '1.300E+05']
    >>> line = ' '.join(words)

  3. #3
    Membre prolifique
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 840
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 840
    Billets dans le blog
    1
    Par défaut
    Bonjour
    Code python : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    with open(modifiedFile,"'w") as outfile:
         with open(self.inputFiles, "r") as infile:
            for line in infile:
                data=line.split()
                ... (modification de data)...
                outfile.write("%s\n" % "".join(data))
            # for
        # with
    #with
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

Discussions similaires

  1. Action d'une liste déroulante, ou comment faire le lien entre une liste et un script
    Par Anju44 dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 0
    Dernier message: 02/06/2014, 10h26
  2. Réponses: 7
    Dernier message: 23/12/2013, 18h19
  3. transformer une liste en chaine de caractères
    Par fboss dans le forum Général Python
    Réponses: 8
    Dernier message: 24/11/2009, 19h07
  4. Réponses: 2
    Dernier message: 28/08/2008, 16h35
  5. Nomer une liste a partir d'un nom pris dans une liste
    Par leau2001 dans le forum Général Python
    Réponses: 2
    Dernier message: 22/05/2006, 11h51

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