使用argparse将多个项目附加到默认参数

时间:2018-03-13 22:04:17

标签: python argparse

我正在使用带有Python 2.7.x的argparse,并且在添加到默认参数列表时遇到了一些麻烦。相关代码如下所示:

parser = ArgumentParser(...)

parser.add_argument('--project-list', action='append', dest='project_list',
                    nargs='*', default=['AAA', 'BBB'])

# ...

args = parser.parse_args()
print args.project_list

在调用时打印以下内容:

$ python program.py --project-list CCC # --> project_list=['AAA', 'BBB', ['CCC']]

$ python program.py --project-list CCC DDD # --> project_list=['AAA', 'BBB', ['CCC', 'DDD']]

但是,我希望该计划要做的事情如下所示

$ python program.py --project-list CCC  # --> project_list=['AAA', 'BBB', 'CCC']

$ python program.py --project-list CCC DDD  # --> project_list=['AAA', 'BBB', 'CCC', 'DDD']

从我到目前为止发现的情况来看,似乎nargs参数强制生成一个列表,然后附加(不知道为什么?)。

其他一些解决方案,例如传递type=strtype=construct_project_list(这是一个返回'有效'列表的函数)也无法正常工作......

提前感谢您提供的任何帮助!

0 个答案:

没有答案