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 :

[Python 3.6] Variabiliser un argument


Sujet :

Python

  1. #1
    Membre habitué Avatar de dedalios
    Homme Profil pro
    concepteur d'application
    Inscrit en
    Février 2008
    Messages
    494
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : concepteur d'application
    Secteur : Santé

    Informations forums :
    Inscription : Février 2008
    Messages : 494
    Points : 152
    Points
    152
    Par défaut [Python 3.6] Variabiliser un argument
    Problème d'utilisation d' argparse pour récupérer les arguments

    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
    # -*- coding: cp1252 -*-
    import sys
    import os
    import time
    import os.path
    import argparse
     
     
    # Constantes : nom et version du script
    __NOM_SCRIPT="arguments.py"
    __VERSION_SCRIPT="1.0"
     
    # Definition des constantes systemes
    __SYSTEM = sys.platform
    __PYTHON_VERSION = sys.version
     
    #*****************************************************************************************************************************#
    #                                         Définitions des fonctions et procédures                                             #
    #*****************************************************************************************************************************#
     
    def syntax(): 
    	print('Syntaxe: recuperer_arguments nomfichier  [-xls|-csv|-les2] [--output=nomfichier] ')
    	print(" nomfichier :nom du fichier d'entree")
    	print(' -xls|-csv|-les2 : type de param�tre de sortie ')	
    	print(' --output=nomfichier :  fichier de sortie ')	
    	exit(1)
     
    def cmd_arguments(args):
    	arguments = {'input' : None , 'type' : '-les2', 'output' : "Total-Flux_Non_Traitable_Flunet" }
    	parser = argparse.ArgumentParser(description='R�cuperer les arguments de la ligne de commande')
    	parser.add_argument('-xlsx' , '-csv' , '-les2' , dest='type' , default='-les2' , action ='store' , help='type de fichier')
    	parser.add_argument("input", action ="store", help="fichier d'entr�e")
    	parser.add_argument("--ouput" , dest="output", action ="store",  default="Total-Flux_Non_Traitable_Flunet" ,help="fichier de sortie") 
    	return parser.parse_args()
     
     
    #**************************************************************************************#
    #                                                                                 Main                                                                    #
    #**************************************************************************************#
     
    if __name__ == "__main__":
    	args = cmd_arguments(sys.argv)
    	print(args)
    Bonjour , mon application doit traiter divers paramètres:

    nomfichier : premier paramètre obligatoire
    -xlsx ou -csv ou -les2 :second paramètre obligatoire
    --output="nomfichierout" : 3ieme paramètre (celui-ci est obligatoire)

    je lance le programme avec les arguments suivant ::--> test.txt -csv --output='ficout'mais lorsque je lance wingware ide avec ces paramètres j’obtiens ceci

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    usage: arguments.py [-h] [-xlsx TYPE] [--ouput OUTPUT] input
    arguments.py: error: argument -xlsx/-csv/-les2: expected one argument
    je lance python

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    >>>  arguments.py test.txt -xlsx --output="ficout"
      File "<stdin>", line 1
        arguments.py test.txt -xlsx --output="ficout"
        ^
    IndentationError: unexpected indent
    >>>
    j'aimerais aussi ajouter des arguments pour tester le programme sous l'Ide Eclipse/pydev je cherche comme mettre les arguments pour faire des tests

  2. #2
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 283
    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 283
    Points : 36 770
    Points
    36 770
    Par défaut
    Salut,

    Comme documenté, la méthode parse_args récupère, par défaut, sys.argv. Si on veut lui passer autre chose, il faut juste le faire (comme dans l'exemple donné dans la documentation parser.parse_args(['--sum', '7', '-1', '42'])).

    Lire aussi les cours et tutoriels pour apprendre Python.

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

Discussions similaires

  1. [Python 2.4] Variabiliser un argument
    Par Orichas dans le forum Général Python
    Réponses: 7
    Dernier message: 21/04/2017, 16h21
  2. passer un argument à un exe python qui tourne
    Par tchernobill dans le forum Général Python
    Réponses: 10
    Dernier message: 14/03/2009, 17h53
  3. Réponses: 0
    Dernier message: 11/11/2007, 21h31
  4. [Mod Python] passage d'arguments II
    Par Gorgo13 dans le forum Réseau/Web
    Réponses: 14
    Dernier message: 23/10/2007, 14h08
  5. [Mod Python] passage d'arguments
    Par Gorgo13 dans le forum Réseau/Web
    Réponses: 2
    Dernier message: 20/10/2007, 16h47

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