如何使用argparse.ArgumentParser在Python中从命令行传递和解析字符串列表?

10 浏览
0 Comments

如何使用argparse.ArgumentParser在Python中从命令行传递和解析字符串列表?

我想从控制台将一个名字列表传递到我的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) # 我希望在这里得到 ['name1', 'name2']

结果导致了错误:

usage: myprog.py [-h] [-n NAMES_LIST]
myprog.py: error: unrecognized arguments: name2

我知道我可以使用引号将名字传递进去 "name1 name2",然后在代码中进行拆分 args.names_list.split()。但是我很好奇,是否有更好的方法通过argparse模块传递字符串列表。

任何想法都将不胜感激。

谢谢!

0