Arguments de ligne de commande Python

Python 基础语法Syntaxe de base Python

Python fournitgetoptun module pour obtenir les arguments de ligne de commande.

$ python test.py arg1 arg2 arg3

En Python, vous pouvez aussi utilisersysdesys.argvpour obtenir les arguments de ligne de commande :

  • sys.argv est la liste des arguments de ligne de commande.

  • len(sys.argv) est le nombre d'arguments de ligne de commande.

Remarque :sys.argv

Exemple

Le code du fichier test.py est le suivant :

Exemple

#!/usr/bin/python
# -*- coding: UTF-8 -*-

import sys

print 'Nombre d'arguments :', len(sys.argv), ' arguments.'
print 'Liste des arguments :', str(sys.argv)

En exécutant le code ci-dessus, le résultat de sortie est :

$ python test.py arg1 arg2 arg3
参数个数为: 4 个参数。
参数列表: ['test.py', 'arg1', 'arg2', 'arg3']

module getopt

Le module getopt est un module spécialement conçu pour gérer les arguments de ligne de commande, utilisé pour obtenir les options et les arguments de ligne de commande, c'est-à-dire sys.argv. Les options de ligne de commande rendent les arguments du programme plus flexibles. Prend en charge le mode d'option courte-et le mode d'option longue--。

Ce module fournit deux méthodes et un gestionnaire d'exceptions pour analyser les arguments de ligne de commande.

méthode getopt.getopt

La méthode getopt.getopt est utilisée pour analyser la liste des arguments de ligne de commande, le format de syntaxe est le suivant :

getopt.getopt(args, options[, long_options])

Description des paramètres de la méthode :

  • args: la liste des arguments de ligne de commande à analyser.

  • options: défini sous forme de chaîne,optionsle deux-points après:indique que si cette option est définie, il doit y avoir un argument supplémentaire ; sinon, aucun argument n'est attaché.

  • long_options: défini sous forme de liste,long_optionsle signe égal après=indique que l'option doit avoir un argument supplémentaire ; sans signe égal, cela signifie que l'option ne prend pas d'argument supplémentaire.

  • La valeur de retour de cette méthode se compose de deux éléments : le premier est(option, value)une liste de tuples. Le second est la liste des arguments, contenant ceux sans-ou--les arguments.

L'autre méthode est getopt.gnu_getopt, qui ne sera pas présentée en détail ici.


Exception getopt.GetoptError

Cette exception est déclenchée lorsque la liste des arguments n'est pas trouvée, ou lorsque l'argument requis d'une option est vide.

L'argument de l'exception est une chaîne indiquant la cause de l'erreur. L'attributmsgetoptest le message d'erreur pour l'option concernée.

Exemple

Supposons que nous créons un tel script, nous pouvons passer deux noms de fichiers au fichier de script via la ligne de commande, et en même temps nous utilisons une autre option pour afficher l'utilisation du script. L'utilisation du script est la suivante :

usage: test.py -i <inputfile> -o <outputfile>

Le code du fichier test.py est le suivant :

Exemple

#!/usr/bin/python
# -*- coding: UTF-8 -*-

import sys, getopt

def main(argv):
   inputfile = ''
   outputfile = ''
   try:
      opts, args = getopt.getopt(argv,"hi:o:",["ifile=","ofile="])
   except getopt.GetoptError:
      print 'test.py -i <inputfile> -o <outputfile>'
      sys.exit(2)
   for opt, arg in opts:
      if opt == '-h':
         print 'test.py -i <inputfile> -o <outputfile>'
         sys.exit()
      elif opt in ("-i", "--ifile"):
         inputfile = arg
      elif opt in ("-o", "--ofile"):
         outputfile = arg
   print 'Le fichier d’entrée est :', inputfile
   print 'Le fichier de sortie est :', outputfile

if __name__ == "__main__":
   main(sys.argv[1:])

En exécutant le code ci-dessus, le résultat de sortie est :

$ python test.py -h
usage: test.py -i <inputfile> -o <outputfile>

$ python test.py -i inputfile -o outputfile
输入的文件为: inputfile
输出的文件为: outputfile

Python 基础语法Syntaxe de base Python

Autres extensions