第一种是利用sys.argv模块
import sys
print sys.argv 输出整个命令行,以list的格式,所以有时候可以通过判断这个list的长度来判断是否有参数值输入。
print sys.argv[0]
print sys.argv[1]
print sys.argv[2]
上面这些都是后面的参数值了,在函数主体内可以获取这些值或者判断这些值来做出响应,比如写一个help函数,如果判断=='help',则可以输出help信息
![](https://img.laitimes.com/img/_0nNw4CM6IyYiwiM6ICdiwiIyVGduV2QvwVe0lmdhJ3ZvwFM38CXlZHbvN3cpR2Lc1TPB10QGtWUCpEMJ9CXsxWam9CXwADNvwVZ6l2c052bm9CXUJDT1wkNhVzLcRnbvZ2Lc1TVzMGaWNjW1xWbhZXUYpVd1kmYr50MZV3YyI2cKJDT29GRjBjUIF2LcRHelR3LcJzLctmch1mclRXY39DM3ADMxcDN5ADMxcDM3EDMy8CX0Vmbu4GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.jpg)
上面的方法比较简单,也很实用
第二种方法是利用OptionParser模块,这个功能比较强大。
我个人理解这个模块的相比较sys模块,就是对输入参数有了一个细致的操作处理,对于用户要输入的参数通过一个简单的标示来进行分类各自处理,也可以在一条命令行中对于不同的参数都有一个不同的处理,sys肯定会有顺序要求,因为他只能通过列表的顺序来获取参数
比如下面这个,我可以输入i 或者p , 都会对应一个变量来得到它, filename = i后面的参数值,putname = p后面参数值,这样在函数内部就可以调用了
下面这段代码是一个简单的只有2个选项的代码,如有需要可以再加,但是简单的结构有了,以后的代码可以直接用dest是你的函数里所需要的变量名,当你的命令行里有i,那么就会来赋值你的filename=你输入的在i后面的参数。
from optparse import OptionParser
parse = OptionParser()
parse.add_option('-i','--inputfile',dest='filename',help='please input your file')
parse.add_option('-p','--putfile',dest='putname',help='please put your name')
#(options,argvs) = parse.parse_args()
options = parse.parse_args()[0] 这里参数值对应的参数名存储在这个options字典里
print options
当输入-h 时也可以直接打印出你里面写的帮助信息,很好用,我们可以看到这里的filename=sun, putname=jin,就按照我们的意愿赋值成功了,脚本里就可以直接调用filename和putname来使用了
用options.filename和filename.putname字典的使用方法。