如何接受多个元素的列表作为命令行参数?

时间:2018-12-21 19:13:36

标签: python linux list command-line argparse

所以我有一个这样的解析器:

parser.add_argument('-f', '--foo', metavar='foo', type=ast.literal_eval, default=[], help="Foo")

如果需要,我需要让用户输入多个值:

$ python3 foo.py -f [0x01, 0x56, 0xff] -a blah -b blah ...

但是每当我尝试列表中的多个值时,都会出现EOF错误:

...
File "<unknown>", line 1
[0x01,
     ^
SyntaxError: unexpected EOF while parsing

设置解析器以处理类似内容的正确方法是什么?

1 个答案:

答案 0 :(得分:2)

只需将其包装在""中:

python3 foo.py -f "[0x01, 0x56, 0xff]" -a blah -b blah ...

,然后foo.py(在这种情况下)对其进行解析。