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 :

argument pour ligne de commande


Sujet :

Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Inscrit en
    Septembre 2006
    Messages
    365
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 365
    Par défaut argument pour ligne de commande
    Bonjour,

    j'ai une fonction processData qui fait un double traitement

    je voudrais faire le choix du traitement en ligne de commande:
    processData
    Arguments: [-c -d] input_file

    de telle sorte que processData -c input_file (c=copy), et processData -d input_file(d=delete)

    merci

  2. #2
    Membre expérimenté
    Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2003
    Messages
    304
    Détails du profil
    Informations personnelles :
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Distribution

    Informations forums :
    Inscription : Janvier 2003
    Messages : 304
    Par défaut
    Utilise le module getopt.

  3. #3
    Membre éclairé
    Inscrit en
    Septembre 2006
    Messages
    365
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 365
    Par défaut
    si tu pouvais me filer plus de détails, ça m'arrangerait..

    j'ai effectivement vu le module getOpt, ainsi que Optparse, mais je n'ai pas pu l'adapter correctement

    merci

  4. #4
    Membre expérimenté
    Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2003
    Messages
    304
    Détails du profil
    Informations personnelles :
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Distribution

    Informations forums :
    Inscription : Janvier 2003
    Messages : 304
    Par défaut
    http://docs.python.org/lib/module-getopt.html tu as des exemples d'utilisations à la fin. Il suffit de les adapter à ton cas.

  5. #5
    Membre éclairé
    Inscrit en
    Septembre 2006
    Messages
    365
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 365
    Par défaut
    j'ai essayé ça mais je dois avoir pas pigé un truc..
    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
     
    def main():
        try:
            opts, args = getopt.getopt(sys.argv[1:], "ho:v", ["help", "output="])
        except getopt.GetoptError, err:
            print str(err) 
            usage()
            sys.exit(2)
        output = None
        for o, a in opts:
            if o == "-c":
                print 'ccccccc'
            elif o in ("-h", "--help"):
                usage()
                sys.exit()
            elif o in ("-u", "--output"):
                print 'uuuuuuuuuuuuuu'
            else:
                assert False, "unhandled option"
     
    if __name__ == "__main__":
        main() -c
    je veux juste essayer de voir le traitement se produire pour une option ou une autre.. mais comment effectuer l'appel aprés?sic'est vraiment le bon code..
    merci

  6. #6
    Membre expérimenté
    Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2003
    Messages
    304
    Détails du profil
    Informations personnelles :
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Distribution

    Informations forums :
    Inscription : Janvier 2003
    Messages : 304
    Par défaut
    et si tu faisais plutôt
    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
     
    import getopt, sys
     
    def main():
        try:
            opts, args = getopt.getopt(sys.argv[1:], "cu", ["copy", "delete"])
        except getopt.GetoptError, err:
            print str(err) 
            usage()
            sys.exit(2)
        output = None
        for o, a in opts:
            if o  in ["-c","--copy"]:
                print 'ccccccc'
            elif o in ("-u", "--delete"):
                print 'uuuuuuuuuuuuuu'
            else:
                assert False, "unhandled option"
     
    if __name__ == "__main__":
        main()
    Puis tu appelles ton script comme ça
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    chaouche@mbarek:~/TEST/PYTHON$ python getOpt.py --delete
    uuuuuuuuuuuuuu
    chaouche@mbarek:~/TEST/PYTHON$ 
    chaouche@mbarek:~/TEST/PYTHON$ python getOpt.py -u
    uuuuuuuuuuuuuu
    chaouche@mbarek:~/TEST/PYTHON$ python getOpt.py -c
    ccccccc
    chaouche@mbarek:~/TEST/PYTHON$ python getOpt.py --copy
    ccccccc
    chaouche@mbarek:~/TEST/PYTHON$ python getOpt.py --delete
    uuuuuuuuuuuuuu
    chaouche@mbarek:~/TEST/PYTHON$

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 08/11/2012, 08h50
  2. Réponses: 27
    Dernier message: 14/12/2006, 19h49
  3. [VB.NET]Argument en ligne de commande
    Par Fayoul dans le forum Windows Forms
    Réponses: 3
    Dernier message: 01/06/2006, 12h27
  4. taille max des arguments en ligne de commande
    Par clepape dans le forum Langage
    Réponses: 2
    Dernier message: 08/10/2005, 13h18
  5. Réponses: 3
    Dernier message: 07/04/2003, 20h06

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