ecriture dans un cvs - espace non demandé
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 :
Code:
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) |
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.
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 :-)