def args_parser():
parser = argparse.ArgumentParser(description='myparser')
parser.add_argument('--k', type=int, default=100, help = 'numbers')
return parser
parser = args_parser():
args = parser.parse_args([])
print(args) # see all values
print(args.k) # see just the k attribute
parse_args()
コマンドラインで提供されるsys.argv
を解析。 parse_args([])
は引数なしでスクリプトを呼び出したのと同じように、空のリストを解析します。私は定期的にこのような呼び出しでパーサーの設定をテストします。
引数定義では[]
が正常に動作し、デフォルトのk
の値が表示されます。他の定義では、[]
がエラーを生成する可能性があります。たとえば、含まれている場合は、
parser.add_argument('infile', help='positional file name')
の文字列が必要です。そのような単純な位置については、デフォルトは必要でもなく、意味がありません。しかし、他のパラメータの組み合わせでは、デフォルトを使用することができます。
add_argument
コマンドで設定されたdefault
にアクセスする方法を示すことができますが、これには文書化されていない機能が含まれています。さらに、デフォルトを定義するいくつかの方法があり、トピックが複雑になる可能性があります。
とにかく、空のリストでparse_args
を実行するだけで十分です。
また、それは少しの追加のヘルプラインのデフォルト表示することができます:インタラクティブipython
セッションで、例えば
parser.add_argument('--k', type=int, default=100, help = 'numbers, %(default)s')
を:
In [73]: parser=argparse.ArgumentParser()
In [74]: parser.add_argument('--k', type=int, default=100, help = 'numbers, %(default)s')
Out[74]: _StoreAction(option_strings=['--k'], dest='k', nargs=None,
const=None, default=100, type=<class 'int'>, choices=None,
help='numbers, %(default)s', metavar=None)
In [75]: parser.print_help()
usage: ipython3 [-h] [--k K]
optional arguments:
-h, --help show this help message and exit
--k K numbers, 100
In [76]: parser.parse_args([]) # displays args
Out[76]: Namespace(k=100)
In [78]: parser.parse_args(['--k','200'])
Out[78]: Namespace(k=200)
'引数= args_parser()。 parse_args() '? 'args.k'を実行して' 100'を得る必要がありますが、そうでなければ... – jonrsharpe
'parser.parse_args()。k' – metatoaster