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 :

[CSV] row syntaxe incorrecte


Sujet :

Python

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Février 2011
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2011
    Messages : 9
    Par défaut [CSV] row syntaxe incorrecte
    Salut,

    Je débute un peu en python et j'ai fait une petit script tout couillon en suivant un tuto (ici : http://www.chicoree.fr/w/Fichiers_CSV_en_Python). Je précise que je suis sous linux (archlinux) tout maj.

    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
    #!/usr/bin/python
    # vim: set fileencoding=utf-8 :
     
    import os,csv
    os.chdir("/home/utilisateur/Python")
    fname = "exemple.csv"
     
    file = open(fname, "rb")
     
    try:
    	reader = csv.reader(file)
    	for row in reader:
    		print row
    finally:
    	file.close()
    et en exécutant le script :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $ '/home/utilisateur/Python/testcsv.py'
    j'obtient l'erreur suivante:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    '/home/utilisateur/Python/testcsv.py'
      File "/home/quentin/Python/testcsv.py", line 33
        print row
                ^
    SyntaxError: invalid syntax
    Je ne comprends absolument pas d'où vient le problème. le chemin du fichier est juste et si j’enlève les lignes :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    for row in reader:
    		print row
    je n'ai aucune erreur. Les tabulation sont bien des tabulations, j'ai python MAJ. Bref je vois pas !

    Des idées ?

  2. #2
    Membre Expert Avatar de PauseKawa
    Homme Profil pro
    Technicien Help Desk, maintenance, réseau, système et +
    Inscrit en
    Juin 2006
    Messages
    2 725
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Technicien Help Desk, maintenance, réseau, système et +
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 725
    Par défaut
    Bonjour,

    En Python 3.x print deviens une fonction.
    De cet fait print row deviens print(row) et print row lève une exception (SyntaxError).

    @+

    Edit: Et la doc au passage.

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Février 2011
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2011
    Messages : 9
    Par défaut
    @PauseKawa : Merci beaucoup pour cette aide rapide (et utile). Je prends prend note de la doc, je m'attendait plus à ce que ça vienne de csv ...

    Une fois le changement fait, j'obtient l'erreur suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Traceback (most recent call last):
      File "/home/utilisateur/Python/testcsv.py", line 32, in <module>
        for row in reader:
    _csv.Error: iterator should return strings, not bytes (did you open the file in text mode?)
    J'en ai déduit que il fallait mettre un 't' à la place du 'b' dans :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    file = open(fname, "rt")
    pour ouvrir le fichier en "text mode".

    Ce qui ne m’empêche pas d'être un peu troublé puisque la doc python de csv met clairement dans ces exemples le paramètre 'b' binary et utilise print row. Il me semble que je vais sur le site de la doc officiel (le même que toi). Je risque d'avoir du mal si la doc est fausse ... Problème de MAJ de docs ? Où puis je trouver la doc MAJ (si elle existe) ?

    Merci.

  4. #4
    Membre Expert

    Homme Profil pro
    Diverses et multiples
    Inscrit en
    Mai 2008
    Messages
    662
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Diverses et multiples

    Informations forums :
    Inscription : Mai 2008
    Messages : 662
    Par défaut
    Ça, c’est la doc de python 2.7… celle pour la py3k officielle (3.2 actuellement) est ici: http://docs.python.org/py3k/library/csv.html

    Tu constateras que les exemples utilisent maintenant le mode texte ('r' ou 'w' tout court).

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Février 2011
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2011
    Messages : 9
    Par défaut
    Ok, je suis juste un boulet, merci de votre patience .

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

Discussions similaires

  1. [SQL Server 2000] Syntaxe incorrecte "CASE"
    Par Chtulus dans le forum Langage SQL
    Réponses: 12
    Dernier message: 23/05/2008, 15h53
  2. Syntaxe incorrecte vers le mot clé 'case'.
    Par anayathefirst dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 21/08/2007, 18h25
  3. [MySQL] syntaxe incorrecte
    Par tentsuken dans le forum PHP & Base de données
    Réponses: 5
    Dernier message: 11/07/2007, 14h03
  4. syntaxe incorrecte findwindowex ?
    Par micky13 dans le forum Delphi
    Réponses: 8
    Dernier message: 27/06/2006, 11h40
  5. Syntaxe incorrecte vers 'where'.
    Par lepeintre dans le forum ASP
    Réponses: 15
    Dernier message: 19/05/2005, 11h57

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