python——内建模块optparse的用法

1.什么是optparse:

在工作中我们经常要制定运行脚本的一些参数,因为有些东西是随着我么需求要改变的,所以在为们写程序的时候就一定不能把写死,这样我们就要设置参数

optparse用于处理命令行参数:

2.基本用法

 1 # 首先你必须导入该类,并创建一个OptionParser对象,然后再使用parser.add_option(...)待定义命令行参数
 2
 3 import optparse
 4
 5 #实例化一个 OptionParser 对象(可以带参,也可以不带参数),带参的话会把参数变量的内容作为帮助信息输出。
 6 Usage = ‘main_analyze.py -d yyyy-mm-dd -p(path)‘
 7 Parser = optparse.OptionParser(usage=Usage)
 8
 9 def usage():
10     Parser.add_option("-d", "--date", dest="date", default="", help=r‘yyyy-mm-dd 可当做一个通配使用‘)
11     Parser.add_option("-l", "--log-path", dest="path", help=r"Log file dir.")
15     Parser.add_option("-c", "--channel", dest="channel", default="\d+", help=r"Log file dir.")   ## -c/--channel 都可以
16
17
18 if __name__ == ‘__main__‘:
19     usage()20    (option, args) = Parser.parse_args()      #解析脚本输入的参数值,options是一个包含了option值的对象  #args是一个位置参数的列表21   anal = bbt_analyze.Analyze(option.date, option.path, option.channel) 22   anal.run()
 # bbt_analyze.py文件1 class Analyze:
2     def __init__(self, date, path channel):
3         self.date = date
4         self.year, self.month, self.day = date.split(‘-‘)
5         self.path = path
6         self.patern = re.compile(
7             r‘%s/%s/%s/%s/‘ % (app_id, platform, channel_type, channel) + self.year + ‘/‘ + str(
8                 int(self.month)) + ‘/‘ + str(int(self.day)))

各个参数的含义:

dest:用于保存输入的临时变量,其值通过options的属性进行访问,存储的内容是dest之前输入的参数,多个参数用逗号分隔
type: 用于检查命令行参数传入的参数的数据类型是否符合要求,有 string,int,float 等类型
help:用于生成帮助信息
default: 给dest的默认值,如果用户没有在命令行参数给dest分配值,则使用默认值

3.运行

1. 可以在pycharm中配置参数

2.在终端的时候直接运行文件

列如:

1 import optparse
2 usage="python %prog -H <target host> -p/-P <target ports>"  #用于显示帮助信息
3 parser=optparse.OptionParser(usage)  #创建对象实例
4 parser.add_option(‘-H‘,dest=‘Host‘,type=‘string‘,help=‘target host‘)   ##需要的命令行参数
5 parser.add_option(‘-P‘,‘-p‘,dest=‘Ports‘,type=‘string‘,help=‘target ports‘ default="20,21")  ## -p/-P 都可以
6 (options,args)=parser.parse_args()
7 print(options.Host)
8 print(options.Ports)

原文地址:https://www.cnblogs.com/yuanfang0903/p/10815140.html

时间: 2024-11-09 10:09:58

python——内建模块optparse的用法的相关文章

Python内建模块--collections

python内建模块--collections collections是Python内建的一个集合模块,提供了许多有用的集合类. namedtuple 我们知道tuple可以表示不变集合,例如,一个点的二维坐标就可以表示成: >>> p = (1, 2) 但是,看到(1, 2),很难看出这个tuple是用来表示一个坐标的. 定义一个class又小题大做了,这时,namedtuple就派上了用场: >>> from collections import namedtupl

python内建模块发起HTTP(S)请求

一.Python2 httplib 简介:httplib实现了HTTP和HTTPS的客户端协议,一般不直接使用,在python更高层的封装模块中(urllib,urllib2)使用了它的http实现. httplib实现http请求 import httplib host = ‘www.baidu.com’  # 注意:不能带上协议 port = 80 # 获取HTTPConnection对象 conn = httplib.HTTPConnection(host, port) # 发起请求 co

python基础-常用内建模块

一.collections:内建集合模块. 1.namedtuple:创建一个自定义的tuple对象 2.deque:为了高效实现插入和删除操作的双向列表,适合用于队列和栈 3.defaultdict:Key不存在时返回默认值 4.OrderedDict:保持Key的顺序 5.Counter:一个简单的计数器 二.base64 : 一种用64个字符来表示任意二进制数据的方法 三.struct : str和其他二进制数据类型的转换 四.hashlib : 提供常见的摘要算法,如MD5,SHA1 五

Python常用内建模块

collections: collections是Python内建的一个集合模块,提供了许多有用的集合类. namedtuple  它用来创建一个自定义的tuple对象,并且规定了tuple元素的个数,并可以用属性而不是索引来引用tuple的某个元素 deque  deque是为了高效实现插入和删除操作的双向列表,适合用于队列和栈 defaultdict  Key不存在时返回默认值,不会报错 OrderedDict  保持Key的顺序 Counter  一个简单的计数器

Python常用的内建模块

PS:Python之所以自称“batteries included”,就是因为内置了许多非常有用的模块,无需额外安装和配置,即可直接使用.下面就来看看一些常用的内建模块. datetime dateime是Python中处理日期和时间的标准库. 获取当前日期和时间 原文地址:https://www.cnblogs.com/yunche/p/8999052.html

Python内建方法

参考: https://docs.python.org/3.4/library/functions.html https://docs.python.org/2/library/functions.html http://blog.csdn.net/jgood/article/details/4371991 以上链接分别为Python官网的3.4版本的内建方法说明.2.X(指2.6和2.7)版本的内建方法说明.以及JGood对2.X版本的内建方法说明的翻译. abs(x) 返回一个数的绝对值.参

Python3 内建模块 hashlib、itertools、HTMLParser、urllib

Python的hashlib提供了常见的摘要算法,如MD5,SHA1等等. 什么是摘要算法呢?摘要算法又称哈希算法.散列算法.它通过一个函数,把任意长度的数据转换为一个长度固定的数据串(通常用16进制的字符串表示). 举个例子,你写了一篇文章,内容是一个字符串'how to use python hashlib - by Michael',并附上这篇文章的摘要是'2d73d4f15c0db7f5ecb321b6a65e5d6d'.如果有人篡改了你的文章,并发表为'how to use pytho

基础入门_Python-模块和包.运维开发中内建模块getopt的最佳实践?

简单介绍: 此模块提供命令行选项解析,目前支持短格式和长格式选项 快速安装: 说明:  内建模块无需安装 解析方法: getopt(args, shortopts, longopts = []) -> (opts, args) 说明: args为要解析的参数序列,常为sys.argv[1:],shortopts为单字符选项定义串,如果某个选项需要一个参数,响应字母后面必须有一个冒号,longopts为长格式的选项名序列,可以包含多个字符,序列元素必须包含--前缀,如果此长选项需要参数则其名应包含

Python3 内建模块 datetime/collections/base64/struct

datetime 我们先看如何获取当前日期和时间: >>> from datetime import datetime >>> now = datetime.now() # 获取当前datetime >>> print(now) 2015-05-18 16:28:07.198690 >>> print(type(now)) <class 'datetime.datetime'> 注意到datetime是模块,datetim