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 :

Nom de variables variable et évaluation


Sujet :

Python

  1. #1
    Candidat au Club
    Homme Profil pro
    Architecte réseau
    Inscrit en
    Février 2013
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Architecte réseau
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Février 2013
    Messages : 2
    Par défaut Nom de variables variable et évaluation
    Bonjour,

    Pour éviter d'avoir à coder 1 centaine de fois la commande suivante :
    Rxx_input_tab = open('Rxx-input-file.csv','w')
    en faisant varier les valeurs xx de 10 à 99,
    j'ai essayé de créer une boucle qui ressemble à ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    for i in range(10,99):
    s = str(i)
    open_file = s + "_input_tab = open('" + s + "-input-file.csv','w')"
    eval(open_file)
    malheureusement, ça ne marche pas :
    open_file contient bien la chaine attendue telle que :
    R10_input_tab = open('R10-input-file.csv','w')
    mais, l'eval de open_file échoue avec le message suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    >>> eval(open_file)
    Traceback (most recent call last):
    File "<stdin>", line 1, in <module>
    File "<string>", line 1
    R10_input_tab = open('R10-input-file.csv','w')
                  ^
    SyntaxError: invalid syntax
    L'erreur pointe sur le signe "=" qui ne semble pas supporter par la fonction eval() ;
    Si quelqu'un a une idée pour faire varier le nom de la variable "Rxx_input_tab" (pas le nom du fichier lui-même, ce qui ne pose pas de pb, sans même passer par eval), merci d'avance

    (je suis en Python 2.7)

  2. #2
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 695
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 695
    Par défaut
    Salut,
    La question serait plutôt "pourquoi passer par eval et la création de variables globales"?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    fichiers = dict()
    for x in range(10,99):
        name = 'R%02d-input-file.csv' % x
        print ('opening name: %s' % name) # pour vérifier que le nom construit est "bon"
        fichiers[x] = open(name,'w')
    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  3. #3
    Candidat au Club
    Homme Profil pro
    Architecte réseau
    Inscrit en
    Février 2013
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Architecte réseau
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Février 2013
    Messages : 2
    Par défaut
    effectivement, eval était une fausse piste;
    merci pour cette solution simple (ça fait un moment que je cherchais)

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

Discussions similaires

  1. Module dont le nom est une variable
    Par Mr Hyde dans le forum Général Python
    Réponses: 11
    Dernier message: 26/02/2023, 20h39
  2. Nom de table variable ?
    Par szdavid dans le forum Oracle
    Réponses: 2
    Dernier message: 10/08/2005, 10h56
  3. [Reflection] Connaître le nom d'une variable ...
    Par dahwoud dans le forum API standards et tierces
    Réponses: 7
    Dernier message: 09/08/2005, 14h37
  4. [try except keyerror] récupérer le nom de la variable
    Par jean-jacques varvenne dans le forum Général Python
    Réponses: 2
    Dernier message: 03/03/2005, 16h59
  5. Nom de champ variable dans une requête SQL
    Par stip dans le forum ASP
    Réponses: 2
    Dernier message: 30/09/2004, 18h02

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