J'utilise argparse
pour analyser les arguments de la ligne de commande.
Pour faciliter le débogage, je voudrais print
une ligne avec les arguments qui avec le script Python a été appelé. Existe-t-il un moyen simple de le faire dans argparse
?
ArgumentParser.parse_args
par défaut prend simplement les arguments de sys.argv
. Donc, si vous ne changez pas ce comportement (en passant quelque chose d'autre à parse_args
), vous pouvez simplement imprimer sys.argv
pour obtenir tous les arguments passés au script Python:
import sys
print(sys.argv)
Alternativement, vous pouvez également simplement imprimer l'espace de noms que parse_args
résultats; de cette façon, vous obtenez toutes les valeurs dans la façon dont l'analyseur d'arguments les a interprétées:
args = parser.parse_args()
print(args)
Si vous exécutez argparse dans un autre python, comme lorsque vous le testez à l'intérieur - nittest , puis l'impression sys.argv affichera uniquement les arguments du script principal, par exemple:
['C:\Eclipse\plugins\org.python.pydev_5.9.2.201708151115\pysrc\runfiles.py', 'C:\Eclipse_workspace\test_file_search.py', '--port', '58454', '- - verbosité ',' 0 ']
Dans ce cas, vous devez utiliser vars pour parcourir les arguments argparse:
parser = argparse.ArgumentParser(...
...
args = parser.parse_args()
for arg in vars(args):
print arg, getattr(args, arg)