2013-03-28 13 views
0

傳遞一個變量到Python功能使用CLI:如何我將參數傳遞給TOC.action功能[1, 'happy'][2, 'sad'] 我想:如何從CLI

python TOC.action.py [1, "happy"]

python TOC.py [1, "happy"]

TOC.py

#!/usr/bin/python 
import sys 

def one(var): 
    print var 

def two(var): 
    print var 

def main(do): 
    print "now what" 
    print do[0] 
    if do[0]==1: one(do[1]) 
    if do[0]==2: two(do[1]) 

if __name__ == '__main__': 
    main(argv) 
    print 'Argument List:', str(sys.argv) 

回答

2

你需要引用的論據在shell:

$ python TOC.py '[1, "happy"]' "[2, 'sad']" 

如果你想打開的參數爲Python數據結構,使用ast.literal_eval

for arg in sys.argv[1:]: 
    print ast.literal_eval(arg) 

一旦變得太複雜了,使用argparse模塊來處理讀取參數。

+0

已使用$ python TOC.py'[1,'happy']',StackTrace:action(argv) NameError:name'argv'未定義 – Merlin

0

如果你要做任何與命令行參數相當複雜的事情,那麼​​確實值得使用。如果您打算以任何頻率使用此工具,情況尤其如此。

也就是說,還有一些工具可以讓CLI訪問python方法變得更容易,包括fabricshovel(完全公開,我爲它工作的公司)和其他人。