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