Outils pour utilisateurs

Outils du site


bts:python:lire_valeurs

Lire données

Dans Stocker un tableau de valeur dans un fichier, on voit comment stocker des valeurs dans un fichier .csv. Ici, on fait l'inverse : on lit les données stockées dans un fichier .csv venant d'ailleurs.

Par exemple le fichier .csv pourrait avoir été produit par un capteur (Arduino par exemple) ou avoir été récupéré sur internet.

On supposera ici que nous disposons d'un fichier data.csv contenant à chaque ligne une valeur x suivie d'une valeur y après une virgule.

Par exemple :

0.0,0.00012340980408667956
0.10101010101010101,0.00022393775270322926
0.20202020202020202,0.00039814633279967626
0.30303030303030304,0.0006935789052571739
0.40404040404040403,0.0011838230273274724
0.5050505050505051,0.001979773207804922
0.6060606060606061,0.003244007528924179

Vous pouvez télécharger data.csv.

Pour travailler, vous devez :

  1. lancer le logiciel désiré. Par exemple EduPython,
  2. créer un nouveau fichier programme avec CTRL+N,
  3. enregistrer aussitôt ce fichier (avec CTRL+S) pour lui donner un nom,
  4. vous pouvez maintenant commencer à écrire le script,
  5. quand vous avez fini, vous pouvez lancer l'exécution (CTRL+E)
2022/08/04 16:24 · goupillwiki

Ouverture du fichier

f = open('data.csv', 'r') # en mode lecture
contenu = f.readlines()
f.close()

Découpage

À l'issue de ces lignes, contenu est une liste donc chaque élément est un texte comme "0.20202020202020202,0.00039814633279967626".

Il faut couper ce texte au niveau du caractère , puis interprété chaque morceau comme un nombre à virgule.

f = open('data.csv', 'r') # en mode lecture
contenu = f.readlines()
f.close()

for ligne in contenu:
    texte_x, texte_y = ligne.split(',') # découpe de la ligne
    x = float(texte_x) # texte converti en nombre
    y = float(texte_y) # idem

Stocker les x et y

Dans ce qui précède, on ne fait rien des x et y calculés. Il faut les stocker dans des tableaux liste_x et liste_y.

Pour cela, on commence par créer des liste_x et liste_y vides, puis à chaque ligne, on ajoute le x calculé à liste_x et idem pour y.

f = open('data.csv', 'r') # en mode lecture
contenu = f.readlines()
f.close()

liste_x = [] # liste initialisée vide
liste_y = []
for ligne in contenu:
    texte_x, texte_y = ligne.split(',') # découpe de la ligne
    x = float(texte_x) # texte converti en nombre
    y = float(texte_y) # idem
    liste_x.append(x) # ajout de x dans la liste correspondante
    liste_y.append(y) # ajout de y dans la liste correspondante

Par exemple, tracer

On a deux listes, on veut tracer. On a déjà vu comment faire dans Tracer une courbe.

import matplotlib.pyplot as plt

f = open('data.csv', 'r') # en mode lecture
contenu = f.readlines()
f.close()

liste_x = [] # liste initialisée vide
liste_y = []
for ligne in contenu:
    texte_x, texte_y = ligne.split(',') # découpe de la ligne
    x = float(texte_x) # texte converti en nombre
    y = float(texte_y) # idem
    liste_x.append(x) # ajout de x dans la liste correspondante
    liste_y.append(y) # ajout de y dans la liste correspondante
    
plt.plot(liste_x, liste_y)
plt.show()
bts/python/lire_valeurs.txt · Dernière modification : de goupillwiki