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 :

Travailler avec un fichier txt


Sujet :

Python

  1. #1
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2015
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2015
    Messages : 6
    Points : 4
    Points
    4
    Par défaut Travailler avec un fichier txt
    Bonjour,
    je rencontre avec le script 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
    ########Lecture d'un fichier de données
    with open("fichier.txt","r") as f: #Creer un fichier texte avec les donnees
     
        po=[]     #creaction du point
        for line in f:
            po+=line.split(' ')     #une histoire de \t et \n
     
    #f.close()
    LT=[] 
    LX=[]
    LY=[]
    i=0
    while i in range(len(po)-1):
    	nt=float(po[i].replace(',,',',').replace(',','.') ) #si les decimaux sont ecrits avec , au lieu de .
    	LT+=[nt]
    	nx=float(po[i+1].replace(',,',',').replace(',','.') )
    	LX+=[nx]
    	ny=float(po[i+2].replace(',,',',').replace(',','.') )
    	LY+=[ny]
    	i+=3
    voici les premieres lignes de ce fichier:

    1845 19.58 30.09
    1846 19.60 45.15
    1847 19.61 49.15
    1848 11.99 39.52
    1849 28.04 21.23

    Lors de l'execution j'ai comme retour:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
        nt=float(po[i].replace(',,',',').replace(',','.') )
    ValueError: could not convert string to float:
    Une idée?
    merci d'avance!

  2. #2
    Membre régulier
    Homme Profil pro
    employé
    Inscrit en
    Mars 2015
    Messages
    75
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : employé

    Informations forums :
    Inscription : Mars 2015
    Messages : 75
    Points : 103
    Points
    103
    Par défaut
    Salut,

    Oui tu peux pas convertir une chaine en float.
    ouvre ton fichier comme ça:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    f = open("fichier.txt", r)
    fs = readlines()
    Essai à partir de là pour voir si ton float passe !

    j'ai pas vérifié le code, donc j'espère que ça va fonctionner ^^"

  3. #3
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2015
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2015
    Messages : 6
    Points : 4
    Points
    4
    Par défaut
    Merci pour ta reponse

    ça me revoi
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    NameError: name 'readlines' is not defined
    ...

  4. #4
    Membre chevronné
    Homme Profil pro
    Enseignant
    Inscrit en
    Juin 2013
    Messages
    1 608
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2013
    Messages : 1 608
    Points : 2 072
    Points
    2 072
    Par défaut
    Citation Envoyé par allmess Voir le message
    Merci pour ta reponse

    ça me revoi
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    NameError: name 'readlines' is not defined
    ...
    f.readlines()
    Pas d'aide par mp.

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

    Citation Envoyé par allmess Voir le message

    Lors de l'execution j'ai comme retour:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
        nt=float(po[i].replace(',,',',').replace(',','.') )
    ValueError: could not convert string to float:
    Une idée?
    Pour convertir un string en float, il faut que le string represente un float ou un nombre.
    Ajoutez un print ('/', po[i], '/') avant l'erreur pour voir à quoi ressemble votre "string".

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  6. #6
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2015
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2015
    Messages : 6
    Points : 4
    Points
    4
    Par défaut
    Merci :)
    Quand je n'apporte aucune modification au script que j'ai présenté plus haut et que je pet un print(po) avant l'erreur j'obtiens:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    [u'1845', u'19.58', u'30.09\n', u'1846', u'19.60', u'45.15\n', u'1847', u'19.61', u'49.15\n', u'1848', u'11.99', u'39.52\n',...]
    Si non je ne comprend pas le rôle du
    f = open("fichier.txt", "r")
    f.readlines()
    ^^

    Merci pour tous.

  7. #7
    Expert éminent
    Avatar de fred1599
    Homme Profil pro
    Lead Dev Python
    Inscrit en
    Juillet 2006
    Messages
    3 823
    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 : 3 823
    Points : 7 119
    Points
    7 119
    Par défaut
    Avant de poser une question sur le forum, assures-toi d'avoir fait une recherche préalable, car systématiquement on va te renvoyer vers des liens résultant de google... On ne réinvente pas l'eau chaude, tout ce qu'on dit est déjà documenté !

    EDIT:
    Aussi n'hésites pas à donner l'objectif de ton exercice, par exemple tu as tes lignes dans ton fichier, quel sera le résultat attendu ?
    Celui qui trouve sans chercher est celui qui a longtemps cherché sans trouver.(Bachelard)
    La connaissance s'acquiert par l'expérience, tout le reste n'est que de l'information.(Einstein)

Discussions similaires

  1. SGBD sur SUN Solaris avec synchro fichier txt
    Par Nicos77 dans le forum Décisions SGBD
    Réponses: 1
    Dernier message: 01/02/2007, 15h03
  2. Pb avec le fichiers .txt générés
    Par Emilie MARQUOIS-OGEZ dans le forum Langage
    Réponses: 2
    Dernier message: 29/11/2006, 13h43
  3. Travailler avec un fichier XML de grande taille
    Par Jayme65 dans le forum Flash
    Réponses: 9
    Dernier message: 29/05/2006, 17h09
  4. Problème avec mes fichiers txt
    Par salseropom dans le forum C
    Réponses: 5
    Dernier message: 18/05/2006, 15h07

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