python argparse中的多个参数
Posted
技术标签:
【中文标题】python argparse中的多个参数【英文标题】:Multiple argument in python argparse 【发布时间】:2022-01-06 22:11:26 【问题描述】:我希望我的脚本采用同名的多个参数。
python3 script.py --test test1 --test test2 --test test3 --config config_path
我怎样才能做到这一点。我已经从 argparse 尝试了 nargs
到现在。
# My Solution
import argparse
parser = argparse.ArgumentParser(description='Arg Parser',
formatter_class=argparse.ArgumentDefaultsHelpFormatter,
allow_abbrev=False)
parser.add_argument('--test', nargs='+', required=True, \
help='Modules name for sanity check', choices=['test1 ', 'test2 ', 'test3 '])
parser.add_argument('--config')
arg = parser.parse_args()
但它的行为与它的形式略有不同
python3 script.py --test test1 test2 --config config_path
关于如何获得所需行为的任何建议
【问题讨论】:
有一个 'append' `action 值。检查文档。 感谢@hpauljappend
有效,但我看到test=[['train1'], ['train2']])
是这种预期行为。
你的nargs
是什么? 'append' 创建一个列表,nargs 可以添加另一个层。
我明白了,我正在使用 nargs='+'
导致这种行为。删除它帮助我解决了这个问题。这是很大的帮助。
【参考方案1】:
@hpaulj cmets 添加代码以防万一
parser.add_argument('--test', action='append', required=True, \
choices=['test1 ', 'test2 ', 'test3 '])
【讨论】:
以上是关于python argparse中的多个参数的主要内容,如果未能解决你的问题,请参考以下文章