IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Python Discussion :

ecriture dans un cvs - espace non demandé [Python 3.X]


Sujet :

Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Futur Membre du Club
    Homme Profil pro
    Enseignant
    Inscrit en
    Octobre 2019
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Octobre 2019
    Messages : 2
    Par défaut 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 : 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)
    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 :-)

  2. #2
    Expert confirmé

    Homme Profil pro
    Inscrit en
    Octobre 2008
    Messages
    4 307
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2008
    Messages : 4 307
    Par défaut
    Salut,

    C'est parce que tu utilises writerow() qui attend les éléments de cette ligne donc le nom est traité comme une suite d'éléments (ou colonnes si tu préfères)

    Fais comme ceci: f_csv.writerow([nom])

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Enseignant
    Inscrit en
    Octobre 2019
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Octobre 2019
    Messages : 2
    Par défaut
    Merci beaucoup pour ta réponse, ça fonctionne en effet.
    Et en effet, maintenant que je lis attentivement, les crochets apparaissent bien dans les exemples de la Doc....

    Merci encore

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [XL-2013] Problème d'espace non conservé dans une méthode text to colonns
    Par rom94000 dans le forum Macros et VBA Excel
    Réponses: 12
    Dernier message: 23/04/2018, 08h44
  2. [11gR2] DELETE dans une table : espace définitivement perdu ou non ?
    Par Ikebukuro dans le forum Administration
    Réponses: 5
    Dernier message: 18/05/2016, 14h14
  3. ajout non demandé dans un vector sous visual studio 2008
    Par touftouf57 dans le forum SL & STL
    Réponses: 3
    Dernier message: 10/12/2010, 20h42
  4. Espace non identifié dans une balise LI sur IE7
    Par BLACKFIRE972 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 13
    Dernier message: 03/09/2009, 13h48
  5. Réponses: 2
    Dernier message: 26/09/2003, 14h51

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo