Forum EduPython

Echanges autour d'EduPython.

Vous n'êtes pas identifié(e).

#1 2020-06-28 09:39:36

2ni
Membre
Inscription : 2020-06-28
Messages : 2

Conversion fichier csv en liste python

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

#2 2020-06-28 20:07:55

magicvinni
Administrateur
Inscription : 2017-12-22
Messages : 283

Re : Conversion fichier csv en liste python

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

#3 2020-06-30 06:06:59

2ni
Membre
Inscription : 2020-06-28
Messages : 2

Re : Conversion fichier csv en liste python

oui, ça marche parfaitement maintenant.
Merci beaucoup :-)

Hors ligne

Pied de page des forums