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的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-24Python编程基础详解
- 2024-11-21Python编程基础教程
- 2024-11-20Python编程基础与实践
- 2024-11-20Python编程基础与高级应用
- 2024-11-19Python 基础编程教程
- 2024-11-19Python基础入门教程
- 2024-11-17在FastAPI项目中添加一个生产级别的数据库——本地环境搭建指南
- 2024-11-16`PyMuPDF4LLM`:提取PDF数据的神器
- 2024-11-16四种数据科学Web界面框架快速对比:Rio、Reflex、Streamlit和Plotly Dash
- 2024-11-14获取参数学习:Python编程入门教程