如何使用 python argparse
模块解析带 HYPHEN 的参数?
MWE
import argparse
parser = argparse.ArgumentParser()
parser.add_argument('-idir','--input-dir')
args = parser.parse_args()
# My attempts
idir = args.idir
idir = args.input-dir
idir = args['input-dir']
print(args)
注意:当然我可以使用下划线 input_dir 但我正在寻找一种用连字符解析参数的方法,例如输入目录
最佳答案
我推荐调试打印:
import argparse
parser = argparse.ArgumentParser()
parser.add_argument('-idir','--input-dir')
args = parser.parse_args()
print(args)
这显示了实际的属性名称:
1156:~/mypy$ python3 stack63329421.py
Namespace(input_dir=None)
1157:~/mypy$ python3 stack63329421.py -h
usage: stack63329421.py [-h] [-idir INPUT_DIR]
optional arguments:
-h, --help show this help message and exit
-idir INPUT_DIR, --input-dir INPUT_DIR
1157:~/mypy$ python3 stack63329421.py --input-dir foobar
Namespace(input_dir='foobar')
现在我可以添加如下打印内容:
print(args.input_dir) # works with a valid attribute name
print(getattr(args, 'input_dir')) # works with anything
并得到:
1158:~/mypy$ python3 stack63329421.py --input-dir foobar
Namespace(input_dir='foobar')
foobar
foobar
如果您不喜欢该帮助,请添加元变量
:
..., metavar='INPUT-DIR'
1158:~/mypy$ python3 stack63329421.py -h
usage: stack63329421.py [-h] [-idir INPUT-DIR]
optional arguments:
-h, --help show this help message and exit
-idir INPUT-DIR, --input-dir INPUT-DIR
关于带连字符的 Python argparse 参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63329421/