我想从控制台向我的Python程序传递一个名字列表。例如,我想使用类似于这样的方式(我知道由于bash
的缘故它不应该起作用):
$ python myprog.py -n name1 name2
所以,我尝试了这段代码:
# myprog.py
from argparse import ArgumentParser
parser = ArgumentParser()
parser.add_argument('-n', '--names-list', default=[])
args = parser.parse_args()
print(args.names_list) # I need ['name1', 'name2'] here
这导致了错误:
usage: myprog.py [-h] [-n NAMES_LIST]
myprog.py: error: unrecognized arguments: name2
我知道我可以用引号"name1 name2"
传递名称,并在我的代码中使用args.names_list.split()
进行拆分。 但是我很好奇,是否有更好的方法通过argparse
模块传递字符串列表。
任何想法都将不胜感激。
谢谢!
--arg=value
语法不支持这种操作吗?比如像--arg="one, two, three"
这样的用法,而不需要分割字符串? - Ulf Gjerdingenparse_args
之后可以拆分字符串。 - chepner