- 浏览: 319470 次
-
文章分类
最新评论
-
ZT71363387:
多谢,帮我解决了抄送人收不到邮件的问题
python smtplib -
dsjt:
pythonw.exe 运行后无反应。版本不匹配啊。
python+PyQT+Eric安装配置 -
dsjt:
xp 32位系统安装eric后,目录下没有 .bat文件是怎么 ...
python+PyQT+Eric安装配置
python中的optparse模块用来编写命令行工具非常实用,下面通过一个例子来阐述一下。
----------------------------
person.py 模块:
-n/--name | the person's name
-a/--age | the person's age
-j/--job | the psrson's job
--------------------------------
- #!/usr/bin/env python
- from optparse import OptionParser
- import sys
- def main():
- p = OptionParser()
- p.add_option('-n','--name',dest='person_name',help='person\'s name',default='person1')
- p.add_option('-a','--age',default=30, help='person\'s age')
- p.add_option('-j','--job',default='software engineer', help='person\'s job')
- options, args = p.parse_args()
- print 'Hello %s' %options.person_name, ', age is %d' %int(options.age), ',job is %s' %options.job
- if __name__ == '__main__':
- main()
#!/usr/bin/env python from optparse import OptionParser import sys def main(): p = OptionParser() p.add_option('-n','--name',dest='person_name',help='person\'s name',default='person1') p.add_option('-a','--age',default=30, help='person\'s age') p.add_option('-j','--job',default='software engineer', help='person\'s job') options, args = p.parse_args() print 'Hello %s' %options.person_name, ', age is %d' %int(options.age), ',job is %s' %options.job if __name__ == '__main__': main()
先来看看OptionParser中的add_option方法,这个方法可以添加命令行参数,支持常见的参数形式,一种是以一个‘-’开头的并跟一个单词的首写字母,另外一个是一‘--’开头的跟一个单词的全称。
parse_args()返回两个值:
一个是所有可选参数的字典,记录了可选参数以及可选参数对应的值,另外一个是位置参数的列表。在本例中,变量options得到的就是可选参数以及可选参数对应的值,类型为字典。args包含了位置参数的列表。
后面的key-work参数可以提供:
1)参数的默认值,用default关键字表示,比如default='person1'表示如果没有提供-n/--name,则这个选项的默认值就是person1.
2) 选项的属性,如果没有dest,则用默认的--后面的作为选项的属性,比如对age选项的添加,这里没有dest,所以用age作为默认的属性,可以用options.age得到它的值
3) 对某个选项的帮助信息,用help关键字表示
看一下代码的输出:
[wangxf@localhost exec]$ ./person.py
Hello person1 , age is 30 ,job is 30
[wangxf@localhost exec]$ ./person.py -h
Usage: person.py [options]
Options:
-h, --help show this help message and exit
-n PERSON_NAME, --name=PERSON_NAME
person's name
-a AGE, --age=AGE person's age
-j JOB, --job=JOB person's job
[wangxf@localhost exec]$ ./person.py --name xiaoxiao
Hello xiaoxiao, age is 30 ,job is 30
http://zzuwxf.iteye.com/blog/1220989
发表评论
-
lxml.etree
2017-06-21 10:48 637http://www.cnblogs.com/bluesc ... -
Python dictdiffer模块比较两个字典
2017-03-04 17:51 3563http://dictdiffer.readthedocs. ... -
python 判断一个对象是否可迭代
2017-01-23 09:44 664如何判断一个对象是可迭代对象呢?方法是通过collectio ... -
给python交互式命令行增加自动补全和命令历史
2017-01-22 10:09 690在用户目录下新建".pythonstartup& ... -
python 字典格式化
2017-01-16 13:57 425import pprint data = {'a': ... -
python最简洁的条件判断语句写法
2017-01-11 20:11 1176这篇文章主要介绍了Python返回真假值(True or ... -
python 格式化json
2016-12-19 20:07 572#!/usr/bin/env python # -*- ... -
python下载文件的三种方法
2016-11-18 10:21 413Python开发中时长遇到要下载文件的情况,最常用的方法就是 ... -
python 格式化字典字符串
2016-11-13 15:27 353version = {'a': 1, 'b': 2, 'c' ... -
python __fatal退出函数
2016-11-13 14:41 645def __fatal(exitcode, message) ... -
Python logging
2016-09-18 18:13 500#!/usr/bin/env python # -*- ... -
思考:如果list中既包含字符串,又包含整数,由于非字符串类型没有lower()方法,所以列表生成式会报错:
2016-06-24 18:30 2056>>> L = ['Hello', 'Wor ... -
去除重复字符串并保持原来顺序输出
2016-06-23 17:53 1216#!/usr/bin/env python # -*- c ... -
Python getpass 输入密码
2016-03-28 20:35 640Python有个自带的getpass模块: impor ... -
优秀Python学习资源收集汇总(强烈推荐)
2016-02-29 15:15 709Python是一种面向对象、直译式计算机程序设计语言。它的 ... -
python 模拟登录iteye博客
2016-01-07 11:32 642#!/usr/bin/python # -*- codi ... -
Python之路【目录】
2016-01-02 00:41 645http://www.cnblogs.com/wupeiq ... -
Python 正则 提取由start开始到end结束的行
2015-12-16 13:51 729import re s=open(r"bug.t ... -
Python文件替代fileinput模块
2015-12-12 12:05 1400Python文件替代fileinput模块 一,文件替代: ... -
linecache,想读某行周围的哪行都可以
2015-12-12 12:04 718import linecache x=linecache ...
相关推荐
optparse模块实现的也是类似的功能,它是为脚本传递命令参数。 使用此模块前,首先需要导入模块中的类OptionParser,然后创建它的一个实例(对象): 复制代码 代码如下: from optparse import OptionParser parser ...
Python中的`optparse`模块是用于处理命令行选项和参数的工具,它是Python标准库的一部分。这个模块使得在命令行接口(CLI)的程序中添加和解析参数变得简单且易于理解。下面我们将深入探讨`optparse`的工作原理以及...
Python的`optparse`模块是Python 2.x版本中用于处理命令行选项的工具,它提供了方便的方式来定义、解析和验证命令行参数。在Python 3.x中,`optparse`已被更强大的`argparse`模块所替代,但对仍在使用Python 2.x的...
在Python中,还有个较简单的`getopt`模块,但`optparse`因其强大的功能和易用性而更受欢迎。 `optparse`模块的核心在于`OptionParser`类,它允许开发者定义各种命令行选项,并自动处理`-h`或`--help`选项,生成帮助...
使用 Python-Nmap 模块可以编写一个探测主机 445 端口的开放状态的函数,函数中使用 PortScanner()类的 scan() 函数来扫描主机的 445 端口,然后索引扫描结果并打印端口状态。 以下是一个探测主机 445 端口的开放...
Commando 灵感来自于 Python 的 optparse 模块 以及 JewelCli Java 库,是一个用来定义以及解析 命令行参数的Python工具包。 标签:Commando
本文以实例形式较为详尽的讲述了Python中optionParser模块的使用方法,对于深入学习Python有很好的借鉴价值。分享给大家供大家参考之用。具体分析如下: 一般来说,Python中有两个内建的模块用于处理命令行参数: 一...
`optparse`模块则简化了命令行选项解析。 7. **多线程(Multithreading)**:Python 2.4在多线程编程方面也有所改进,尽管GIL(全局解释器锁)仍然存在,但对线程的管理和同步有了更好的支持。 8. **Unicode支持**...
首先,需要导入`optparse`模块中的`OptionParser`类,并实例化一个`OptionParser`对象: ```python from optparse import OptionParser parser = OptionParser() ``` ##### 添加命令行选项 接下来,使用`add_...
`optparse`模块,用于命令行选项解析;`anydbm`和`dbm.gnu`模块,为通用数据库接口提供了更多选择。 4. **性能优化**:Python 2.4对解释器进行了优化,提高了运行速度,尤其是对于循环和函数调用。同时,C扩展模块...
文档中提到了如下几个`collections`模块中的数据类型: - `ChainMap`:允许用户将多个字典链接在一起,使其看起来像一个单独的字典。 - `Counter`:一个用于计数可哈希对象的字典子类。 - `defaultdict`:一种字典...
主要介绍了Python命令行参数解析模块optparse使用实例,本文讲解了增加选项(add_option())、行为(action)、设置默认值(default)、生成帮助提示(help)、设置boolean值、错误处理、选项组(Grouping Options)等内容,需要...
在Python 3中,它的功能被拆分到`urllib.request`和`urllib.error`模块中。 这些文件组合在一起,表明这个压缩包可能是一个包含Python 2.7标准库部分组件的集合,用于在没有完整Python环境的系统上运行依赖这些模块...
3. **新增模块和库**:Python 2.5添加了一些新的标准库,如`argparse`(虽然在2.7版本中才成为标准),用于命令行参数解析,以及`optparse`,一个早期的命令行选项解析库。 4. **异常处理**:Python 2.5改进了异常...
此外,`optparse`模块为命令行选项解析提供了便利。 4. **错误处理**:Python 2.5.4对错误处理进行了改进,提高了异常处理的效率,并修复了许多已知的bug。 5. **C API增强**:对于开发者来说,C API的更新使得与...
- 引入了`argparse`模块,这是一个命令行参数解析库,替代了之前的`optparse`,提供了更灵活的接口和更好的用户体验。 2. **语法改进**: - `with`语句的增强:Python 2.6.1支持了`with`语句,提供了一种优雅的...
- 引入了`__future__`模块,允许开发者在Python 2.x中使用部分Python 3.x的新特性。 2. **性能优化**: - 内部实现的改进,包括字典的哈希算法优化,提高了查找速度。 - 对于循环和列表操作的性能提升,使得大...