如何禁用argparse将参数包装到列表中

时间:2013-06-07 12:23:31

标签: python argparse

我有一个像这样的解析器

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'吗?谢谢。

1 个答案:

答案 0 :(得分:5)

如果您不希望它成为列表,请不要使用nargs

parser.add_argument('--template', metavar='FILE', required=True)

来自nargs option documentation

  

请注意nargs=1会生成一个项目的列表。这与默认情况不同,在默认情况下,项目由其自身生成。

  

如果未提供nargs关键字参数,则消耗的参数数量由操作决定。通常,这意味着将使用单个命令行参数,并且将生成单个项目(不是列表)。