argparse:如何允许单个参数有多个名称?

3

在argparse中,是否可以使用多个名称来引用单个参数?具体而言,我希望允许用户通过下划线和连字符(破折号)指定参数。

import argparse
parser = argparse.ArgumentParser()
parser.add_argument('--input-file')
args = parser.parse_args()

例如,我希望以下两个选项都适用于参数args.input_file
python main.py --input-file /tmp/file
python main.py --input_file /tmp/file
1个回答

10

.add_argument()中简单列出更多选项:

arg_parser.add_argument('--input-file', '--input_file')

应该可以解决问题。

请注意,在参数中使用减号-字符是首选的GNU语法


请注意,名称可以完全不相关,例如:
arg_parser.add_argument('-bar', '--foo', '--input-file', '--input_file')

在这种情况下,以--(规范化)开头的第一个值将用于参数命名空间:
args = arg_parser.parse_args()
print(args)
# Namespace(foo=...)

2
你能详细说明一下代码中元素的名称吗?是第一个、最后一个还是全部?(例如 args.input-fileargs.input_file - gr4nt3d
2
@gr4nt3d 这将是第一个有效的、标准化的版本。请查看编辑。 - norok2

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接