2015-01-14 19 views
-3

我想任何數量的字符串傳遞給一個Python程序,並讓他們解析爲列表或數組:如何將參數解析到python列表中?

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

等,多達200個字符串。

我使用argparse來解析python中的命令行參數。我怎樣才能做到這一點?該文檔沒有給出任何解析任意數量參數的例子。

+0

https://docs.python.org/3/library/argparse.html#nargs – hpaulj

回答

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 
0

只要做,例如:

import sys 
print(sys.argv[1:]) 

你會看到sys.argv這正是你想要的(除了sys.argv[0]名單是你的程序,你可能不關心的名稱關於 - 這就是爲什麼我把它切片:-)。