python采用getopt解析命令行输入参数实例,pythongetopt
python采用getopt解析命令行输入参数实例,pythongetopt
本文实例讲述了python采用getopt解析命令行输入参数的方法,分享给大家供大家参考。
具体实例代码如下:
import getopt import sys config = { "input":"", "output":".", } #getopt三个选项,第一个一般为sys.argv[1:],第二个参数为短参数,如果参数后面必须跟值,须加:,第三个参数为长参数 #是一个列表, opts, args = getopt.getopt(sys.argv[1:], 'hi:o:d', [ 'input=', 'output=', 'help' ] ) #参数的解析过程,长参数为--,短参数为- for option, value in opts: if option in ["-h","--help"]: print """ usage:%s --input=[value] --output=[value] usage:%s -input value -o value """ elif option in ['--input', '-i']: config["input"] = value elif option in ['--output', '-o']: config["output"] = value elif option == "-d": print "usage -d" print config
输入的参数:
--input=c:\temp\aa -o c:\temp\output -d
打印的结果:
usage -d {'input': 'c:\\temp\\aa', 'output': 'c:\\temp\\output'}
希望本文所述对大家的Python程序设计有所帮助。
Python代码
1. try:
2. opts, args = getopt.getopt(sys.argv[1:], "ho:", ["help", "
output="])
3. except getopt.GetoptError: 4. # print help information and exit:
1. 处理所使用的函数叫getopt() ,因为是直接使用import 导入的getopt 模块,所以要加上限定getopt 才可以。
2. 使用sys.argv[1:] 过滤掉第一个参数(它是执行脚本的名字,不应算作参数的一部分)。
3. 使用短格式分析串"ho:" 。当一个选项只是表示开关状态时,即后面不带附加参数时,在分析串中写入选项字符。当选项后面是带一个附加参数时,在分析串中写入选项字符同时后面加一个":" 号 。所以"ho:" 就表示"h" 是一个开关选项;"o:" 则表示后面应该带一个参数。
4. 使用长格式分析串列表:["help", "output="] 。长格式串也可以有开关状态,即后面不跟"=" 号。如果跟一个等号则表示后面还应有一个参数 。这个长格式表示"help" 是一个开关选项;"output=" 则表示后面应该带一个参数。
5. 调用getopt 函数。函数返回两个列表:opts 和args 。opts 为分析出的格式信息。args 为不属于格式信息的剩余的命令行参数。opts 是一个两元组的列表。每个元素为:( 选项串, 附加参数) 。如果没有附加参数则为空串'' 。
早就帮你写好教程了:
【整理】Python中如何获得并处理命令行参数
看这个之前,请确保自己比较清楚python的开发环境,
如果不熟悉,可参考:
【整理】【多图详解】如何在Windows下开发Python:在cmd下运行Python脚本,如何使用Python Shell(command line模式和GUI模式),如何使用Python IDE
(此处不给贴地址,请自己用google搜帖子标题,即可找到帖子地址)
相关内容
- python中pycurl库的用法实例,pythonpycurl
- python中文编码问题小结,
- python格式化字符串实例总结,python字符串实例
- python实现批量获取指定文件夹下的所有文件的厂商信息
- python自动化测试实例解析,python自动化实例
- python自动化测试之setUp与tearDown实例,pythonteardown
- python自动化测试之从命令行运行测试用例with verbosity,
- python自动化测试之连接几组测试包实例,python几组
- 跟老齐学Python之玩转字符串(2)更新篇,齐学python
- 跟老齐学Python之print详解,齐学pythonprint
评论关闭