python-optparse

2021/8/31 9:06:33

本文主要是介绍python-optparse,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

1. usage的使用

usage相当于告诉你这个程序的用法,和其他的一些帮助信息,当然你也可以写一些无关。

1.1. usage的默认值

#如果你不给usage赋值,也就是第二行OptionParser不进行传值,他会输出一个默认信息
from optparse import OptionParser
parser= OptionParser()
parser.print_help()

#执行1
PS D:\Python\optparse> python 2.py
Usage: 2.py [options]

Options:
-h, --help show this help message and exit
#执行2
PS D:\Python\optparse> python 2.py -h

Options:
-h, --help show this help message and exit
1.2. 给usage传值

#代码
from optparse import OptionParser
usage = "python filename.py [ -u <url>] [-d <database>] [-t <table>] [-c <column>]"
parser= OptionParser(usage)
parser.print_help()

#执行1
PS D:\Python\optparse> python 2.py
Usage: python filename.py [ -u <url>] [-d <database>] [-t <table>] [-c <column>]

Options:
-h, --help show this help message and exit

#执行2
PS D:\Python\optparse> python 2.py -h
Usage: python filename.py [ -u <url>] [-d <database>] [-t <table>] [-c <column>]

Options:
-h, --help show this help message and exit

2. add_option的使用

先看一下简单的例子模(模仿sqlmap)

from optparse import OptionParser
usage = "python filename.py [ -u <url>] [-d <database>] [-t <table>] [-c <column>]"
#创建一个OptionParser对象
parser= OptionParser(usage)
#用add_options方法给OptionParser对象添加四个选项
parser.add_option("-d","--database",action="store",type="string",dest="database",help="please input database:")
parser.add_option("-t","--table",action="store_true",dest="table",help="please input table:")
parser.add_option("-c","--column",action="store_flase",dest="column",help="please input column:")
parser.add_option("-u","--url",action="store",type="string",dest="url",help="please input url:")
#从命令行接受参数
options, args = parser.parse_args()
print(options)
print(args)

#执行结果
PS D:\Python\optparse> python 2.py --database database -u url -t table1 table2 table3 -c column1,colum2
{'database': 'database', 'table': True, 'column': False, 'url': 'url'}
['table1', 'table2', 'table3', 'column1', 'colum2']
add_option的参数详解

如:add_option("-t","--table",action="store",type="string",dest="table",help="helpinfo")
2.1. -和–

-t 短标签
-table 长标签
如: python 1.py -u ‘url’ 和 python1.py - -url ‘url’ 这两个是一样的效果|
2.2. action

store,默认值,输入什么,显示什么,如 python1.py –url ‘url’ 那么options.url就等于你输入的url的值。
store_true,如果定义这个类型,就不需要后边接type这个参数,如python1.py –url ‘url’那么options.url就等于 你输入的True,如果没有对输入url,那么options.url就是None.
store_false,跟store_true相似,如果你进行了赋值,那么他的值就是false,否则就是None
from optparse import OptionParser
parser= OptionParser()
parser.add_option("-a",action="store",dest="a")
parser.add_option("-b",action="store_false",dest="b")
parser.add_option("-c",action="store_true",dest="c")
parser.add_option("-d",action="store_true",dest="d")
list=['-a','1','-b','2','-c','3']
options, args = parser.parse_args(list)
print(options)
print(args)

--------------------------------------------
#执行结果
{'a': '1', 'b': False, 'c': True, 'd': None}
['2', '3']
2.3 type

定义你输入值的类型,如果type未提供,则默认为”string”。optparse有六个内置选项类型:

“string”,
“int”,
“long”,
“choice”,
“float”,
“complex”
2.4. dest

用于保存临时变量,其值可以作为options的属性进行访问。如python 1.py -u ‘url’,你就可以用options.url的值才访问你输入的值。

2.5. help

提供用户友好的帮助信息.

2.6. default

如果我们没有指定dest的值的话,default的值就会作为dest的默认值来进行使用!你传入值他就不生效了|

3. parse_args方法详解

parse_args用来接收你参数,他有两个返回值,options保存的是接受的变量,agrs保存的是未接收的变量,也就是在命令行中你输入的参数,程序没有接受这个变量。它有两种方法:

3.1. 在程序里面直接传值

from optparse import OptionParser
parser= OptionParser()
parser.add_option("-a",action="store",dest="a")
list=['-a','1','2']
options, args = parser.parse_args(list)
print(options)
print(args)
----------------------------------------------------------------------------
#执行结果 在程序里面传值的权限大于在命令行的输入传值,会直接覆盖在命令行里面的传值结果
PS D:\Python\optparse> python 2.py -a a,b,c
{'a': '1'}
['2']
3.2. 在命令行里面直接传值

from optparse import OptionParser
parser= OptionParser()
parser.add_option("-a",action="store",dest="a")
options, args = parser.parse_args()
print(options)
print(args)
----------------------------------------------------------------------------
#执行结果
PS D:\Python\optparse> python 2.py -a a,b,c
{'a': 'a'}
['b', 'c']



这篇关于python-optparse的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程