Arguments de ligne de commande 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
# -*- 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
# -*- 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 输出的文件为: outputfileAutres extensions
Syntaxe de base Python