Python——OptionParser模块
官网link:https://docs.python.org/3/library/optparse.html
介绍
OptionParser是一个更方便、更灵活、更强大的用于解析命令行选项的库,使用更具声明性的命令行分析样式:创建 OptionParser ,用选项填充它,并解析命令行。 optparse 允许用户以常规GNU/POSIX语法指定选项,并另外为您生成用法和帮助消息
基本用法
①from optparse import OptionParser
②parser = OptionParser(...)
③parser.add_option(...)
④(options, args) = parser.parse_args()
参数选项
OptionParser()
parser = OptionParser(usage="usage: %prog [options] arg",version="%prog 1.0",description="hello OptionParser!")
例如: Usage: test.py [options] arg
例如:test.py 1.0
例如:hello OptionParser!
parser.add_option()
parser.add_option("-v", "--verbose",action="store_true",dest="verbose",help="这是帮助文档")
- store 表示命令行参数的值保存在options对象中。
- store_false 中存在 -v verbose 将会返回false,也就是说verbose的值与-v后的具体参数具体项无关,只与-v是否存在有关
- store_true 与action="store_false"类似,只有其中有参数-v存在时,则verbose的值为true,如果-v不存在,那么verbose的值为None
例如:
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()
PS C:\Users\Administrator> & E:/python3.8.8/python.exe c:/Users/Administrator/Desktop/test.py -f 1
1
例如:
parser.add_option("-v", "--verbose",action="store_true",dest="verbose",help="这是帮助文档")
-v, --verbose 这是帮助文档
生成帮助
'''
@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()
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>
错误提示
此示例拿于官网手册
'''
@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参数的具体选项值随意设置,存在即可。
reading 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: error: incorrect number of arguments
提示参数不够
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
cov-run-desktop-test.py: error: -f option requires 1 argument
错误:-f选项需要1个参数
代码示例
'''
@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", 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()
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
PS C:\Users\Administrator> & E:/python3.8.8/python.exe c:/Users/Administrator/Desktop/test.py --version
test.py 1.0
参考博客: ①https://blog.51cto.com/u_15102970/2638697 ②https://www.cnblogs.com/blacksunny/p/5315545.html ③http://www.ttlsa.com/python/python-optionparser-usage/
|