我有一个像这样的解析器
parser = argparse.ArgumentParser()
parser.add_argument('--template', metavar='FILE', nargs=1, required=True)
并传递像这样的参数
myprog --template template.txt
但是当我稍后检查从args
获得的args = parser.parse_args()
时,我会得到
['template.txt']
我可以改为普通'template.txt'
吗?谢谢。
答案 0 :(得分:5)
如果您不希望它成为列表,请不要使用nargs
:
parser.add_argument('--template', metavar='FILE', required=True)
请注意
nargs=1
会生成一个项目的列表。这与默认情况不同,在默认情况下,项目由其自身生成。
和
如果未提供nargs关键字参数,则消耗的参数数量由操作决定。通常,这意味着将使用单个命令行参数,并且将生成单个项目(不是列表)。