Latest web development tutorials

arguments de ligne de commande Python

arguments de ligne de commande Python

Python fournit le modulegetopt pour obtenir les arguments de ligne de commande.

$ python test.py arg1 arg2 arg3

Python peut également être utilisé dansle sys.argvsys pour obtenir les arguments de ligne de commande:

  • sys.argv est une liste de paramètres de ligne de commande.

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

NOTE: sys.argv [0] indique le nom du script.

Exemples

Code de fichier test.py est la suivante:

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

import sys

print '参数个数为:', len(sys.argv), '个参数。'
print '参数列表:', str(sys.argv)

Mise en œuvre du code ci-dessus, la sortie est:

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

Module getopt

Module getopt est des paramètres de ligne de commande du module de traitement dédié utilisées pour obtenir les options et les paramètres de ligne de commande, est sys.argv. l'option de ligne de commande rend le programme des paramètres plus souples. Soutien à court mode option (-) et options longues Mode (-).

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

méthode getopt.getopt

méthodes getopt.getopt pour l'analyse syntaxique de la liste des paramètres de ligne de commande est la suivante:

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

Paramètres de la méthode:

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

  • Options: pour définir la chaîne de format, les optionsdu côlon après (:) indique que cette option doit avoir les paramètres supplémentaires, sans le côlon indique que cette option est pas de paramètres supplémentaires.

  • long_options: définir le format de la liste,long_options après le signe égal (=) dit que si cette option est activée, il doit y avoir des paramètres supplémentaires, ou des paramètres supplémentaires non.

  • Cette méthode retourne une valeur se compose de deux éléments: le premier est la(option, valeur) tuples.La seconde est une liste de paramètres, y compris ceux qui ne le font pas '-' ou '-' paramètre.

Une autre méthode est getopt.gnu_getopt, pas grand chose à faire ici décrit.


getopt.GetoptError Exception

Ne figure pas dans la liste des paramètres ou des options paramètre souhaité déclenche l'exception est vide.

argument Exception est une chaîne qui représente l'erreur. Message d'erreur options liées etoptent pour l'attribut msg.

Exemples

Supposons que nous créons un tel script, vous pouvez passer deux lignes à la commande de nom de fichier de fichier de script, alors que nous utilisons une autre option pour afficher le script. Utilisez le script suivant:

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

Code de fichier test.py est la suivante:

#!/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 '输入的文件为:', inputfile
   print '输出的文件为:', outputfile

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

Mise en œuvre du code ci-dessus, la sortie est:

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

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