Echanges autour d'EduPython.
Vous n'êtes pas identifié(e).
Bonjour tout le monde
je cherche à convertir un fichier csv (qui pourrait être issu de mesures en EXOA) en liste utilisable par python sans avoir à recopier à la main les (trop) nombreuses mesures
j'ai fait quelques recherches et j'ai trouvé ça
import csv x=[] y=[] t=[] # remplacer le chemin par celui menant au fichier csv dans votre PC with open('J:/Enseignement/0-Terminale/extraction fichier csv en python/essai txy.csv', newline='') as f: reader = csv.reader(f, delimiter=';') for col in reader: t.append(float(col[0])) #n°0 = 1ére colonne x.append(float(col[1])) #n°1 = 2eme colonne y.append(float(col[2])) #n°2 = 3eme colonne print(t) print(x) print(y)
cela fonctionne parfaitement quand le fichier csv ne contient que des valeurs entières
mais dés qu'il s'agit des nombres relatifs, j'obtiens ce message d'erreurs
-
Message Nom de Fichier Ligne Position
Traceback
<module> J:\Enseignement\0-Terminale\extraction fichier csv en python\fonction convertisseur tableau csv.py 11
ValueError: could not convert string to float: '0,4'
-
la virgule n'est pas reconnu
la sauvegarde du fichier tableur(libreoffice) en format csv utilise la virgule et non un point ....et python n'aime pas ça..
Quelqu'un aurait-il une solution?
Hors ligne
Vous pouvez modifier les appends en :
t.append(float(col[0].replace(",", ".")))
Qui remplace dans la chaine tous les , par des .
Bonne soirée,
Vincent
Hors ligne
oui, ça marche parfaitement maintenant.
Merci beaucoup :-)
Hors ligne