首页 > 代码库 > Python脚本获取参数的方式
Python脚本获取参数的方式
Python脚本获取参数的方式
在运维过程中,常常需要自己写脚本,而python往往是最佳的选择。那么怎么获取python脚本的命令行参数呢,例如:
python demo.py a b c
怎么获取命令行参数,a,b,c 呢?可以通过sys
库里面的argv
来实现, 例如:
$ cat demo.py #-*- coding: UTF-8 -*- import osimport sysdef 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‘]4parameter 0 --- demo.pyparameter 1 --- aparameter 2 --- bparameter 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 osimport sysimport getoptopt, args = getopt.getopt(sys.argv[1:], "ha:b:", [‘apple=‘,‘banana=‘,‘help‘])print optfor 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‘, ‘‘)]AABBHelp info
<style></style>
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。