Python之OptionParser模块使用详解
目录
- 介绍
- 基本用法
- 参数选项
- OptionParser()
- parser.add_option()
- 生成帮助
- 错误提示
- 代码示例
- 总结
介绍
OptionParser是一个更方便、更灵活、更强大的用于解析命令行选项的库,使用更具声明性的命令行分析样式:创建 OptionParser ,用选项填充它,并解析命令行。 optparse 允许用户以常规GNU/POSIX语法指定选项,并另外为您生成用法和帮助消息
基本用法
①from optparse import OptionParser #导入模块 ②parser = OptionParser(...) #创建实例 ③parser.add_option(...) #添加命令行参数 ④(options, args) = parser.parse_args() #得到解析后的options对象,查看用户的输入
参数选项
OptionParser()
parser = OptionParser(usage="usage: %prog [options] arg",version="%prog 1.0",description="hello OptionParser!") #usage 打印用法 例如: Usage: test.py [options] arg #version --version时输出版本信息 例如:test.py 1.0 #description 描述信息 --help时输出 例如:hello OptionParser!
parser.add_option()
parser.add_option("-v", "--verbose",action="store_true",dest="verbose",help="这是帮助文档") #action 指明optparser解析参数时该如何处理。默认是store - store 表示命令行参数的值保存在options对象中。 - store_false 中存在 -v verbose 将会返回false,也就是说verbose的值与-v后的具体参数具体项无关,只与-v是否存在有关 - store_true 与action="store_false"类似,只有其中有参数-v存在时,则verbose的值为true,如果-v不存在,那么verbose的值为None #type 默认是string,也可以是 int、float等 #dest 指定接收用户输入的值,当action="store"时可以将dest接收的值进打印或比较等其他处理 例如: from optparse import OptionParser def main(): parser = OptionParser(usage="usage: %prog [options] arg",version="%prog 1.0",description="hello OptionParser!") parser.add_option("-f", "--file", dest="filename",help="read data from FILENAME") parser.add_option("-v", "--verbose",action="store_true",dest="verbose",help="这是帮助文档") parser.add_option("-q", "--quiet",action="store_false", dest="verbose") (options, args) = parser.parse_args() print(options.filename) if __name__ == "__main__": main() #===test.py -f 1输出===# PS C:\Users\Administrator> & E:/python3.8.8/python.exe c:/Users/Administrator/Desktop/test.py -f 1 1 #default 设置默认值;如果在命令行上未看到该选项,则default的值为用于该选项的默认值。 #help --help时 输出该选项的解释说明 例如: parser.add_option("-v", "--verbose",action="store_true",dest="verbose",help="这是帮助文档") #===test.py -h输出===# -v, --verbose 这是帮助文档
生成帮助
#!/usr/bin/env python3.8.8 # -*- encoding: utf-8 -*- ''' @File : test.py @Time : 2022/02/08 11:48:40 @Author : 热气球 @Version : 1.0 @Contact : 17695691664@163.com ''' from optparse import OptionParser def main(): parser = OptionParser(usage="usage: %prog [options] arg",version="%prog 1.0",description="hello OptionParser!") parser.add_option("-f", "--file", dest="filename",help="read data from FILENAME") parser.add_option("-v", "--verbose",action="store_true",dest="verbose",help="这是帮助文档") parser.add_option("-q", "--quiet",action="store_false", dest="verbose") (options, args) = parser.parse_args() if len(args) != 1: parser.error("incorrect number of arguments") if options.verbose: print("reading %s..." % options.filename) if __name__ == "__main__": main() #===test.py -h输出===# PS C:\Users\Administrator> & E:/python3.8.8/python.exe c:/Users/Administrator/Desktop/test.py --help Usage: test.py [options] arg hello OptionParser! Options: --version show program's version number and exit -h, --help show this help message and exit -f FILENAME, --file=FILENAME read data from FILENAME -v, --verbose 这是帮助文档 -q, --quiet PS C:\Users\Administrator>
错误提示
此示例拿于官网手册
#!/usr/bin/env python3.8.8 # -*- encodhttp://www.cppcns.coming: utf-8 -*- ''' @File : test.py @Time : 2022/02/08 11:48:40 @Author : 热气球 @Version : 1.0 @Contact : 17695691664@163.com ''' from optparse import OptionParser def main(): parser = OptionParser(usage="usage: %prog [options] arg",version="%prog 1.0",description="hello OptionParser!") parser.add_option("-f", "--file", dest="filename",help="read data from FILENAME") parser.add_option("-v", "--verbose",action="store_true", dest="verbose") parser.add_option("-q", "--quiet",action="store_false", dest="verbose") (options, args) = parser.parse_args() if len(args) != 1: parser.error("incorrect number of arguments") if options.verbose: print("reading %s..." % options.filename) if __name__ == "__main__": main() #---示例代码解释---# -v参数 当指定-v时才可以运行此代码,因为-v存在时if options.verbose: 为True -q参数 当指定-q时表明退出执行,因编程客栈为action="store_false",所以-q不存在,if options.verbose: 为True -f参数 指定filename,需要配合-v参数一起使用; -v参数的具体选项值随意设置,存在即可。 #===test.py -v True -f 1输出===# reading 1... #===test.py -f 1输出===# PS C:\Users\Administrator> & E:/python3.8.8/python.exe c:/Users/Administrator/Desktop/test.py -f 1 Usage: cov-run-desktop-test.py [options] arg cov-run-desktop-test.py: erro编程客栈r: incorrect number of arguments 提示参数不够 #===test.py -f 输出===# PS C:\Users\Administrator> & E:/python3.8.8/python.exe c:/Users/Administrator/Desktop/test.py -f Usage: cov-run-desktop-test.py [options] arg c编程客栈ov-run-desktop-test.py: error: -f option requires 1 argument 错误:-f选项需要1个参数
代码示例
#!/usr/bin/env python3.8.8 # -*- encoding: utf-8 -*- ''' @File : test.py @Time : 2022/02/08 11:48:40 @Author : 热气球 @Version : 1.0 @Contact : 17695691664@163.com ''' from optparse import OptionPa编程客栈rser def main(): parser = OptionParser(usage="usage: %prog [options] arg",version="%prog 1.0",description="hello OptionParser!") parser.add_option("-f", "--file", dest="filename",help="read data from FILENAME") parser.add_option("-v", "--verbose",action="store", default='reqiqiu',dest="verbosename",help="这是帮助文档") parser.add_option("-q", "--quiet",action="store_false", dest="verbose") (options, args) = parser.parse_args() if len(args) != 1: parser.error("incorrect number of arguments") if options.verbose: print("reading %s..." % options.filename) if __name__ == "__main__": main() #===test.py -h输出===# PS C:\Users\Administrator> & E:/python3.8.8/python.exe c:/Users/Administrator/Desktop/test.py -h Usage: test.py [options] arg hello OptionParser! Options: --version show program's version number and exit -h, --help show this help message and exit -f FILENAME, --file=FILENAME read data from FILENAME -v VERBOSENAME, --verbose=VERBOSENAME 这是帮助文档 -q, --quiet #===test.py -v输出===# PS C:\Users\Administrator> & E:/python3.8.8/python.exe c:/Users/Administrator/Desktop/test.py --version test.py 1.0
总结
本篇文章就到这里了,希望能够给你带来帮助,也希望您能够多多关注我们的更多内容!
精彩评论