如何将参数解析为python列表?

时间:2015-01-14 00:46:12

标签: python argparse

我想将任意数量的字符串传递给python程序并将它们解析为列表或数组:

foo.py hello world
foo.py a b e f g ddd qqq vvv

等,最多200个字符串。

我正在使用argparse来解析python中的命令行参数。我怎样才能做到这一点?该文档没有给出解析任意数量参数的任何示例。

2 个答案:

答案 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]是您的计划名称,您可能不关心 - 这就是为什么我把它剪掉了: - )。