如何从CLI传递变量到python函数

时间:2013-03-28 21:55:04

标签: python command-line-interface

使用CLI:如何将参数传递给TOC.action函数 [1, 'happy'][2, 'sad'] 我试过了:

  

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 个答案:

答案 0 :(得分: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模块来处理读取参数。

答案 1 :(得分:0)

如果您要使用命令行参数做任何相当复杂的事情,那么argparse确实值得使用。如果你打算以任何频率使用这个工具,情况尤其如此。

也就是说,还有一些工具旨在使CLI更容易访问python方法,包括fabricshovel(完全披露,我工作的公司写的)和其他人。