介绍
OptionParser是一个更方便、更灵活、更强大的用于解析命令行选项的库,使用更具声明性的命令行分析样式:创建 OptionParser ,用选项填充它,并解析命令行。 optparse 允许用户以常规GNU/POSIX语法指定选项,并另外为您生成用法和帮助消息
基本用法
1
2
3
4
|
① from optparse import OptionParser #导入模块 ②parser = OptionParser(...) #创建实例 ③parser.add_option(...) #添加命令行参数 ④(options, args) = parser.parse_args() #得到解析后的options对象,查看用户的输入 |
参数选项
OptionParser()
1
2
3
4
5
6
7
|
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()
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
|
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 这是帮助文档 |
生成帮助
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
|
#!/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> |
错误提示
此示例拿于官网手册
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
|
#!/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" ) 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: error: 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 cov - run - desktop - test.py: error: - f option requires 1 argument 错误: - f选项需要 1 个参数 |
代码示例
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
|
#!/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" , 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 |
总结
本篇文章就到这里了,希望能够给你带来帮助,也希望您能够多多关注服务器之家的更多内容!
原文链接:https://blog.csdn.net/weixin_42506599/article/details/122830917