You've already forked www.colben.cn
update
This commit is contained in:
@@ -7,30 +7,30 @@ categories: ["python"]
|
||||
---
|
||||
|
||||
# 生成标准的、符合Unix/Posix 规范的命令行说明
|
||||
```python
|
||||
from optparse import OptionParser
|
||||
parser = OptionParser()
|
||||
parser.add_option('-p', '--pdbk', action = 'store_true', dest = 'pdcl', default = False,
|
||||
help = 'write pdbk data to oracle db')
|
||||
parser.add_option('-z', '--zdbk', action = 'store_true', dest = 'zdcl', default = False,
|
||||
help = 'write zdbk data to oracle db')
|
||||
(options, args) = parser.parse_args()
|
||||
if options.pdcl == True:
|
||||
print 'pdcl is true.'
|
||||
if options.zdcl == True:
|
||||
print 'zdcl is True.'
|
||||
```
|
||||
```python
|
||||
from optparse import OptionParser
|
||||
parser = OptionParser()
|
||||
parser.add_option('-p', '--pdbk', action = 'store_true', dest = 'pdcl', default = False,
|
||||
help = 'write pdbk data to oracle db')
|
||||
parser.add_option('-z', '--zdbk', action = 'store_true', dest = 'zdcl', default = False,
|
||||
help = 'write zdbk data to oracle db')
|
||||
(options, args) = parser.parse_args()
|
||||
if options.pdcl == True:
|
||||
print 'pdcl is true.'
|
||||
if options.zdcl == True:
|
||||
print 'zdcl is True.'
|
||||
```
|
||||
|
||||
# 简单流程
|
||||
```python
|
||||
#引入OptionParser类,创建OptionParser对象
|
||||
from optparse import OptionParser
|
||||
parser = OptionParser()
|
||||
# 定义命令行参数
|
||||
parser.add_option(opt_str, ..., attr = value, ...)
|
||||
# 解析命令行参数
|
||||
(options, args) = parser.parse_args()
|
||||
```
|
||||
```python
|
||||
# 引入OptionParser类,创建OptionParser对象
|
||||
from optparse import OptionParser
|
||||
parser = OptionParser()
|
||||
# 定义命令行参数
|
||||
parser.add_option(opt_str, ..., attr = value, ...)
|
||||
# 解析命令行参数
|
||||
(options, args) = parser.parse_args()
|
||||
```
|
||||
|
||||
# parse_args 和 add_options 函数
|
||||
- parse_args() 接收一个命令行列表,默认使用 sys.argv\[:-1\]
|
||||
@@ -45,6 +45,7 @@ parser.add_option(opt_str, ..., attr = value, ...)
|
||||
help = 'Don\'t print status message to stdout.')
|
||||
(options, args) = parser.parse_args()
|
||||
```
|
||||
|
||||
- action 默认 store 表示将参数值保存到 options 对象里
|
||||
```python
|
||||
from optparse import OptionParser
|
||||
@@ -54,6 +55,7 @@ parser.add_option(opt_str, ..., attr = value, ...)
|
||||
(options, args) = parser.parse_args(args)
|
||||
print options.filename
|
||||
```
|
||||
|
||||
- type 默认 'string',也可以是 'int' 或 'float' 等,长参数名可选,dest 未指定时将用命令行的参数名来存取 options 对象的值
|
||||
- store 其他两种形式:store_true 和 store_false,还有 store_const、append、count、callback
|
||||
```python
|
||||
@@ -61,6 +63,7 @@ parser.add_option(opt_str, ..., attr = value, ...)
|
||||
parser.add_option('-q', action = 'store_false', dest = 'verbose')
|
||||
#当解析到 '-v', options.verbose 为 True,解析到 '-q',options.verbose 为 False
|
||||
```
|
||||
|
||||
- default 设置参数默认值
|
||||
```
|
||||
parser.add_option('-f', action = 'store', dest = 'filename', default = 'foo.txt')
|
||||
@@ -70,6 +73,7 @@ parser.add_option(opt_str, ..., attr = value, ...)
|
||||
parser.add_option(...)
|
||||
(options, args) = parser.parse_args()
|
||||
```
|
||||
|
||||
- help 生成帮助信息
|
||||
```python
|
||||
usage = 'usage: %prog [options] arg1 arg2'
|
||||
@@ -89,12 +93,13 @@ parser.add_option(opt_str, ..., attr = value, ...)
|
||||
- metavar 提醒用户该参数期待的参数,如 metavar = 'mode' 会在帮助中显示成 -m MODE, --mode=MODE
|
||||
|
||||
# OptionGroup 参数分组
|
||||
```python
|
||||
group = OptionGroup(parser, 'Dangerous Options',
|
||||
'Caution: use these options at your own risk. It is believed that some of them bite.')
|
||||
group.add_option('-g', action = 'store_true', help = 'Group option.')
|
||||
parser.add_option_group(group)
|
||||
```
|
||||
```python
|
||||
group = OptionGroup(parser, 'Dangerous Options',
|
||||
'Caution: use these options at your own risk. It is believed that some of them bite.')
|
||||
group.add_option('-g', action = 'store_true', help = 'Group option.')
|
||||
parser.add_option_group(group)
|
||||
```
|
||||
|
||||
- version 创建OptionParser对象时指定该参数,会解释成 --version 命令行参数
|
||||
- optparser 可以自动探测并处理一些用户异常,也可以使用 parser.error() 方法来自定义部分异常的处理
|
||||
```
|
||||
|
Reference in New Issue
Block a user