视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
Python命令行参数解析模块optparse使用实例
2020-11-27 14:39:47 责编:小采
文档


示例

代码如下:


from optparse import OptionParser
[...]
def main():
usage = "usage: %prog [options] arg"
parser = OptionParser(usage)
parser.add_option("-f", "--file", dest="filename",
help="read data from FILENAME")
parser.add_option("-v", "--verbose",
action="store_true", dest="verbose")
parser.add_option("-q", "--quiet",
action="store_false", dest="verbose")
[...]
(options, args) = parser.parse_args()
if len(args) != 1:
parser.error("incorrect number of arguments")
if options.verbose:
print "reading %s..." % options.filename
[...]

if __name__ == "__main__":
main()


增加选项(add_option())

代码如下:


OptionParser.add_option(option)
OptionParser.add_option(*opt_str, attr=value, ...)


定义短选项

代码如下:


parser.add_option(“-f”, attr=value, …)


定义长选项

代码如下:


parser.add_option(“–foo”, attr=value, …)


如果定义

代码如下:


​parser.add_option("-f", "--file", action="store", type="string", dest="filename")


命令行格式可以有以下形式

代码如下:


-ffoo
-f foo
--file=foo
--file foo


解析后结果

代码如下:


options.filename = “foo”


解析(parse_args())

代码如下:


(options, args) = parser.parse_args()


options 解析后的参数,以字典形式保存
args 不能解析的参数,以列表形式保存

行为(action)

●store 默认行为,保存值到dest
●“store_const” 保存常量
●“append” append this option's argument to a list
●“count” increment a counter by one
●“callback” call a specified function

设置默认值(default)

代码如下:


parser.add_option("-v", action="store_true", dest="verbose", default=True)
parser.set_defaults(verbose=True)


生成帮助提示(help)

提供help选项即可,可以用parser.print_help()打印出来

代码如下:


parser.add_option(“-f”, “–file”, dest=”filename”,help=”write report to FILE”, metavar=”FILE”)


设置boolean值

支持store_true和store_false两个行为

代码如下:


parser.add_option("-v", action="store_true", dest="verbose")
parser.add_option("-q", action="store_false", dest="verbose")


如果遇到-v,verbose=True;如果遇到-q,verbose=False

错误处理

代码如下:


(options, args) = parser.parse_args()
[...]
if options.a and options.b:
parser.error("options -a and -b are mutually exclusive")


选项组(Grouping Options)

格式如下

class optparse.OptionGroup(parser, title, description=None)

代码如下:


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)


提示结果如下

代码如下:


Usage: [options] arg1 arg2

Options:
-h, --help show this help message and exit
-v, --verbose make lots of noise [default]
-q, --quiet be vewwy quiet (I'm hunting wabbits)
-f FILE, --filename=FILE
write output to FILE
-m MODE, --mode=MODE interaction mode: novice, intermediate, or
expert [default: intermediate]

Dangerous Options:
Caution: use these options at your own risk. It is believed that some
of them bite.

-g Group option.

下载本文
显示全文
专题