Python命令行参数处理
来源:互联网 发布:电力电子技术知乎 编辑:程序博客网 时间:2024/05/21 10:24
日常工作中,编写Python脚本时,时常会遇到需要从命令行中传递一些参数到Python程序中,Python程序根据参数值进行相应的处理。本文简要介绍一下Python脚本中如何获得命令行传递来的参数,以及如何解析和处理它们。
sys.argv
解析Python中命令行参数的最传统的方法是通过sys.argv
sys.argv 是命令行参数列表。
len(sys.argv) 是命令行参数个数。
- sys.argv[0] 表示脚本名
示例
#!/usr/bin/python# -*- coding: UTF-8 -*-import sysprint '参数个数为:', len(sys.argv), '个参数。'print '参数列表:', str(sys.argv)
执行输出结果为:
$ python test.py arg1 arg2 arg3参数个数为: 4 个参数。参数列表: ['test.py', 'arg1', 'arg2', 'arg3']
这种方法比较简单,但灵活性较差,且解析出来的参数都是str类型。编写单数较少且固定的脚本时使用比较方便。
argparse
argparse模块是Python内置的参数解析模块,相比sys.argv功能更强大、也更加灵活,使用起来也并不复杂。
使用步骤如下:
第一步:创建ArgumentParser对象
import argparseparser = argparse.ArgumentParser(description='Description of the program') #description为可选参数
ArgumentParser支持更多可选参数,具体可以参考:https://docs.python.org/2/library/argparse.html#argumentparser-objects
第二步:添加选项和参数
parser.add_argument("--targetEnv",default = 'TEST', type=str, choices = ['TEST','PROD'],help="想要运行测试用例的环境,可选值[TEST,PROD]")parser.add_argument("--urlPrefix",default = 'http://127.0.0.1:8908/',type=str, help = "日志文件的下载url前缀————Jenkins运行时需要")
第三步:解析和处理参数
args = parser.parse_args()env = args.targetEnv
argparse可以做的事情:
自动生成help文档。
如上文所述Python脚本文件命名为py_run.py后执行--help的结果如下截图
add_argument支持对参数的灵活配置
ArgumentParser.
add_argument
(name or flags...[, action][, nargs][, const][, default][, type][, choices][, required][, help][, metavar][, dest])
- name or flags - 选项字符串的名字或者列表,例如foo(name) 或者 -f,--foo(flag).
- action - 命令行遇到参数时的相应动作,默认是store
- nargs - 应该读取的命令行参数个数。
- const - 某些action和nargs所需要的常量值。
- default - 未指定参数时设置的默认值。
- type - 命令行参数被转换成的类型。
- choices - 参数合法取值的容器。
- required - 参数是否可以缺省(仅针对可选参数——argparse默认flags(-f,--foo这种)代表的是可选参数,即可以在命令行中省略,如果想要设置这种参数为必选,设置required=True即可。.
- help - 对参数的简要说明。
- metavar - 在 usage 说明中的参数名称,对于必选参数默认就是参数名称,对于可选参数默认是全大写的参数名称。
- dest - 解析后的参数名称,默认情况下,对于可选参数选取最长的名称,中划线转换为下划线。
关于每个参数的详细说明,请查阅https://docs.python.org/2/library/argparse.html#the-add-argument-method
参考资料
http://www.runoob.com/python/python-command-line-arguments.html
https://docs.python.org/2/library/argparse.html#argumentparser-objectshttps://docs.python.org/2/library/argparse.html
- python处理命令行参数
- python 处理命令行参数
- python处理命令行参数
- python处理命令行参数
- python 处理命令行参数
- python命令行参数处理
- python 处理命令行参数
- python 处理命令行参数
- python 处理命令行参数
- Python处理命令行参数
- python处理命令行参数
- Python命令行参数处理
- Python中处理命令行参数
- python的命令行参数处理
- Python:使用getopt模块处理命令行参数
- Python中 命令行参数传递 与 处理
- Python:使用 optparse 处理命令行参数
- python中处理命令行参数命令getopt
- Android Studio 获取keystore的MD5指纹以及SHA1安全码
- git命令更新代码
- 通过MBean server监控weblogic应用
- mongodb实现一主两从一个仲裁者
- Awesome Vue.js vue.js学习资源链接大全 中文
- Python命令行参数处理
- 杂志征稿要求
- 【NOIP2017提高A组模拟10.10】总结
- Linux下设置和查看环境变量
- jquery点击加class在点击移除添加的class
- 删除前弹框确认删除吗?
- Go语言备忘录:反射的原理与使用详解
- 最大子数组—Lintcode
- Jmeter特殊情况一:登录请求中密码加密的情况