您的位置:首页 > 编程语言 > Python开发

Python脚本获取参数的方式

2014-08-17 20:14 369 查看
Python脚本获取参数的方式

在运维过程中,常常需要自己写脚本,而python往往是最佳的选择。那么怎么获取python脚本的命令行参数呢,例如:

python demo.py a b c

怎么获取命令行参数,a,b,c 呢?可以通过
sys
库里面的
argv
来实现, 例如:

$ cat demo.py
#-*- coding: UTF-8 -*-
import os
import sys

def demo():
print sys.argv
print len(sys.argv)
for i in range(len(sys.argv)):
print "parameter %s --- %s" %(i, sys.argv[i])

if __name__ == "__main__":
demo()

$ python demo.py a b c['demo.py', 'a', 'b', 'c']
4
parameter 0 --- demo.py
parameter 1 --- a
parameter 2 --- b
parameter 3 --- c

不难看出python是把命令行的参数放在了sys.argv的这个list里面,包括脚本的名字。

但是如果需要命令选项的时候,上面这种方式会显得很吃力,这是可以使用
getopt
库里的
getopt
函数,函数的原型为:


getopt.getopt(args, options[, long_options])


第一个参数为:获取的命令行参数,有
sys.argv
提供,不包括脚本名字

第二个参数为:可以解析的option首字母组成的字符串,后面带有
:
表示必须要跟参数

第三个参数为:长option,字符串组成的一个list,后面加
=
表示需要加参数

如下所示:

$ cat demo.py
#-*- coding: UTF-8 -*-
import os
import sys
import getopt

opt, args = getopt.getopt(sys.argv[1:], "ha:b:", ['apple=','banana=','help'])

print opt

for op,value in opt:
if op in ("-a", "--apple"):
print value
elif op in ("-b", "--banana"):
print value
elif op in ("-h", "--help"):
print "Help info"
sys.exit()

$ python demo.py -a A --apple A -b B --banana B -h
[('-a', 'A'), ('--apple', 'A'), ('-b', 'B'), ('--banana', 'B'), ('-h', '')]
A
A
B
B
Help info
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: