コマンドライン引数を解析するためにargparse
を使用しています。
デバッグを支援するために、Pythonスクリプトで呼び出された引数を含む行をprint
したいと思います。argparse
内でこれを行う簡単な方法はありますか?
ArgumentParser.parse_args
は、デフォルトで sys.argv
。そのため、その動作を変更しない場合(何か他のものをparse_args
)、単に印刷することができますsys.argv
は、Pythonスクリプトに渡されるすべての引数を取得します。
import sys
print(sys.argv)
または、parse_args
が戻ります。そのようにして、引数パーサーがそれらを解釈した方法ですべての値を取得します。
args = parser.parse_args()
print(args)
テスト中など、argparse in another another python scriptを実行している場合 nittest 内にある場合、sys.argvは、メインスクリプトの引数、たとえば:
['C:\ Eclipse\plugins\org.python.pydev_5.9.2.201708151115\pysrc\runfiles.py'、 'C:\ Eclipse_workspace\test_file_search.py'、 '-port'、 '58454'、 '-詳細」、「0」]
この場合、 vars を使用してargparse argsを反復処理する必要があります。
parser = argparse.ArgumentParser(...
...
args = parser.parse_args()
for arg in vars(args):
print arg, getattr(args, arg)