Bonjour à tous, dans le cadre d'un projet personnel d’entraînement au calcul pour mes élèves, je fais des tests de lecture/écriture de csv.
Voici un essai :
Problème, comme vous le voyez en commentaire, ma variable 'nom', même (re)convertie en str, est écrit dans mon csv n o m. C'est à dire que si j'entre paul dans mon inpout, je me retrouve avec p a u l dans mon csv. Si bien que ma boucle de vérification ne marche jamais.
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
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50 #!/usr/bin/env python # -*- coding: utf-8 -*- # # testcsv.py # import csv def verif(nom): #on verifie si le nom rentré existe déjà with open ('table.csv') as f: compte_trouve=0 # à l'aide de cette variable f_csv=csv.reader(f) en_tetes=next(f_csv) for ligne in f_csv: print (ligne[0]) if ligne[0]==nom: print ("compte existant") compte_trouve=1 # qui est censée changer de valeur si la condition est remplie lecture(nom) if compte_trouve==0: # si la variable est toujours à 0 ecriture(nom) # on écrit le nom dans la table def lecture(nom): #fonction de lecture des entrées with open ('table.csv') as f: f_csv=csv.reader(f) en_tetes=next(f_csv) for ligne in f_csv: print (ligne) def ecriture(nom): #fonction d'écriture du nom dans la table with open ('table.csv','a',newline='') as f: f_csv=csv.writer(f,delimiter=' ') f_csv.writerow(nom) # on écrit le nom à la suite des autres. # PROBLEME, ma variable nom s'écrit dans le fichier n o m print(nom,' a été écrit') choix=input ("voulez vous lire le fichier ?") if choix=='o': lecture(nom) else : print ("bye") nom=input("nom ") nom=str(nom) verif(nom)
Je dois donc forcément faire une erreur dans ma fonction écriture...mais vous l'aurez deviné, je ne la trouve pas.
Merci donc par avance de m'éclairer :-)
Partager