Bonjour,

Je souhaite enregistrer des données dans un fichier csv pour pouvoir les lire après. J'ai 2 programmes pour tester le fonctionnement : un pour écrire dans le fichier, l'autre pour lire le fichier.

J'arrive à écrire les données dans le fichier csv (visibles dedans). Mais quand je souhaite les lire cela ne fonctionne pas.
Dans un premier temps, on pourrait se dire qu'il y a une erreur dans le programme de mon fichier lecture. Sauf que lorsque j'enregistre le fichier csv directement à partir d'Open Office, mon fichier lecture fonctionne !


Fichier écriture :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
import csv
import datetime
 
Date = ["samedi","dimanche","lundi"]
Param = ["20","40","10"]
 
valeur = 40
fichierCSV = open("base.csv","w",encoding='utf-8')
ContenuCSV = csv.writer(fichierCSV)
date = datetime.datetime.now()
ContenuCSV.writerow([ ( str(date.day) + "." + str (date.month) + "." + str(date.year) + " " + str(date.hour) + ":" + str(date.minute) + ":" + str(date.second) ) , valeur ])
ContenuCSV.writerow([ Date[1] , Param[1] ])
ContenuCSV.writerow([ Date[0] , Param[0] ])
fichierCSV.close()

Fichier lecture :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
import csv
fichierCSV = open("base.csv","r",encoding='utf-8')
ContenuCSV = csv.reader(fichierCSV,)
print(ContenuCSV)
NumLigne = 0
Date = ["","",""]
Param = ["","",""]
for ligne in ContenuCSV:
    NumLigne = NumLigne + 1
    print (NumLigne-1)
    Date[NumLigne-1]= ligne[0]
    Param[NumLigne-1]= ligne[1]
 
    print (Date)
    print (Param)
Affichage dans le shell :

<_csv.reader object at 0x0322D0F0>
0
['16.12.2018 18:8:38', '', '']
['40', '', '']
1
Traceback (most recent call last):
  File "C:\Users\Anthony\Desktop\HTML CSS\CSV\CSV.py", line 11, in <module>
    Date[NumLigne-1]= ligne[0]
IndexError: list index out of range
Merci pour votre aide.