我想将任意数量的字符串传递给python程序并将它们解析为列表或数组:
foo.py hello world
foo.py a b e f g ddd qqq vvv
等,最多200个字符串。
我正在使用argparse来解析python中的命令行参数。我怎样才能做到这一点?该文档没有给出解析任意数量参数的任何示例。
答案 0 :(得分:2)
使用nargs
关键字参数。
import argparse
p = argparse.ArgumentParser()
p.add_argument('foo', nargs='+')
args = p.parse_args()
print args.foo
nargs='+'
需要一个参数。用法:
$ python test.py a b c
['a', 'b', 'c']
$ python test.py
usage: p.py [-h] foo [foo ...]
p.py: error: too few arguments
答案 1 :(得分:1)
就这样做,例如:
import sys
print(sys.argv[1:])
您会看到sys.argv
正好是您想要的列表(除了sys.argv[0]
是您的计划名称,您可能不关心 - 这就是为什么我把它剪掉了: - )。