Partage
  • Partager sur Facebook
  • Partager sur Twitter

manipulation de fichier

    6 avril 2020 à 12:28:50

    Bonjour Madame, Monsieur,

    Je suis débutant dans le python.Je dois manipuler les fichiers pour mon projet .Je n'arrive pas transformer les strings en floats.Je vous remercie d'avance pour votre aide.

    def extra_donne(nom):
    	fichier = open(nom)
    	contenue = fichier.read()
    	fichier.close()
    	lignes = contenue.split("\t")
    	l1 = []
    	for ligne in lignes:
    		parse = contenue
    		k1u = parse[:10]
    		valeurs = parse[220:-1]
    		val1 = valeurs.split("\t")[3:25]
    		val2 = str(val1)
    		val3 = float(val2)
    	print(val2)
    
    
    tes = extra_donne("test1.txt")

    erreur :

    Traceback (most recent call last):
      File "apprenti1.py", line 18, in <module>
        tes = extra_donne("test1.txt")
      File "apprenti1.py", line 14, in extra_donne
        val3 = float(val2)
    ValueError: could not convert string to float: ['72096.54', '19.12', '62.02', '-11.42', '-10741.43', '-79563.80', '66.60', '16.28', '-61.72', '-5.88', '-8722.56', '-64608.15', '-70.85', '25.11', '0.00', '0.00', '0.00', '0.00', '0.00', '0.00', '0.0

    fichier test1.txt :

    Date    Heure    1X    1Y    1Z    T1-aX -    T1-bX -    T1-aY-    T1-bY -    T1-aZ -    T1-bZ -    T1-aX +    T1-bX +    T1-aY +    T1-bY +    T1-aZ +    T1-bZ +    2X    2Y    2Z    T2-aX -    T2-bX -    T2-aY -    T2-bY -    T2-aZ -    T2-bZ -    T2-aX +    T2-bX +    T2-aY +    T2-bY +    T2-aZ +    T2-bZ +
    14:23:47    13/03/2020    -8.50    72096.54    19.12    62.02    -11.42    -10741.43    -79563.80    66.60    16.28    -61.72    -5.88    -8722.56    -64608.15    -70.85    25.11    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00
    14:23:48    13/03/2020    -8.52    72093.01    19.12    62.02    -11.42    -10741.43    -79563.80    66.60    16.28    -61.72    -5.88    -8722.56    -64608.15    -70.85    25.11    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00



    • Partager sur Facebook
    • Partager sur Twitter
      6 avril 2020 à 16:40:29

      Doute sur ligne 12, pourquoi cette ligne ?

      Que donne print(val1) ?

      Que donnerait par hasard val3 = list(map(float, val1)) ?

      On comprend pas bien ce que tu essayes de faire, mais ce qui est sûr, c'est que tu dois revoir un tuto sur les types en python.

      -
      Edité par fred1599 6 avril 2020 à 16:41:35

      • Partager sur Facebook
      • Partager sur Twitter

      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)

        6 avril 2020 à 18:02:03

        fred1599 a écrit:

        Doute sur ligne 12, pourquoi cette ligne ?

        Que donne print(val1) ?

        Que donnerait par hasard val3 = list(map(float, val1)) ?

        On comprend pas bien ce que tu essayes de faire, mais ce qui est sûr, c'est que tu dois revoir un tuto sur les types en python.

        -
        Edité par fred1599 il y a environ 1 heure


        En faite à la ligne 12 , j'ai essayé de transformer en chaîne de caractère pour pouvoir transformer en float (j'ai vu que on pouvait faire avec python sur un toto).
        • Partager sur Facebook
        • Partager sur Twitter
          6 avril 2020 à 18:06:05

          Sauf que là c'est une liste de chaînes, il n'y a pas de cohérence
          • Partager sur Facebook
          • Partager sur Twitter

          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)

            9 avril 2020 à 23:14:51

            J'ai un autre problème avec un tableau1  ligne(36).Quand je affiche print (tab3) il m'affiche une liste vide alors que je la définie en global (ligne 10).Pouvez-vous m’indiquer mon erreur svp .Je reste bloque assez longtemps sur ce problème.Je vous remercie d'avance.

            mport os
            import numpy as np
            import matplotlib.pyplot as plt
            import glob
            import os.path
            
            for file in glob.glob("*.txt"):
            	print(file)
            
            tab3 = []  
            
            
            
            def extra_donne(nom):            #  crée une fonction
            	fichier = open(nom)          #  ouvre le fichier 
            	contenue = fichier.read()    #  lis le fichier
            	fichier.close()
            	lignes = contenue.split("\t") # séprer à chaque colonne
            	tab1 =[]            
            	for ligne in lignes:          # boucle sur lignes pour lire tous les chaînes de caractère  
            		parse = contenue          
            		klu = parse[:10]          # prend les deux premiers chînes de carctères        
            		valeurs = parse[220:-1]
            		val1 = valeurs.split("\t")[3:25] # séparer les valeurs qui nous intéresse les chiffre 
            		val3 = list(map(float,val1))    # transforme en float 
            		tab1 = val3
            	print(val3[3])
            	print("\t")
            	print(val3[4])
            	print("bonjour")
            	print(tab1)
            	tab3 = tab1
            	return tab1
            
            
            tes = extra_donne("test1.txt")
            print(tab3)
            
            
            print("\n")
            

             réponse affiché :

            -11.42
               
            -10741.43
            bonjour
            [72096.54, 19.12, 62.02, -11.42, -10741.43, -79563.8, 66.6, 16.28, -61.72, -5.88, -8722.56, -64608.15, -70.85, 25.11, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]
            [ ]




            • Partager sur Facebook
            • Partager sur Twitter

            manipulation de fichier

            × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
            × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
            • Editeur
            • Markdown