gpt4 book ai didi

Python中optparser库用法实例详解

转载 作者:qq735679552 更新时间:2022-09-28 22:32:09 25 4
gpt4 key购买 nike

CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.

这篇CFSDN的博客文章Python中optparser库用法实例详解由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.

本文研究的主要是Python中optparser库的相关内容,具体如下.

一直以来对optparser不是特别的理解,今天就狠下心,静下心研究了一下这个库。当然了,不敢说理解的很到位,但是足以应付正常的使用了。废话不多说,开始今天的分享吧.

简介 。

optparse模块主要用来为脚本传递命令参数功能. 。

引入 。

在IDE中引入optparser是很方便的.

?
1
from optparser import OptionParser

初始化 。

相对而言,初始化需要我们多注意一点点了。 因为我们有两种不同的方式来初始化一个parser.

带有Usage选项:

这样的好处是可以模拟带有帮助的终端使用,如下 。

?
1
2
3
>>> from optparse import OptionParser
>>> usage = "myprog[ -f <filename>][-s <xyz>] arg1[,arg2..]"
>>> parser = OptionParser(usage) #这里为类添加了参数usage

显示的时候就会使这样的了.

?
1
2
3
4
5
6
>>> parser.print_help()
Usage: myprog[ - f <filename>][ - s <xyz>] arg1[,arg2..]
Options:
  - h, - - help      show this help message and exit #此两行根据option自动生成,比较智能额~~
  - f FILENAME, - - file = FILENAME
             no any help #自定义帮助信息

不带Usage选项:

正常来说可以不用设置参数.

?
1
parser = OptionParser()

添加选项 。

为命令行添加选项是我们这次最主要的工作了,也是核心。但是在添加选项之前,我们应该明白,为什么要添加选项?选项的工作原理是什么?这样我们才能更好的理解optparser的设计思想.

选项:类比于Unix的工作模式。举例 ls -a 或者 ls -all. 我们添加了一个名为all 的选项,为了简化操作,默认设置为a. 。

在OptionParser中要想实现这样的一个效果,我们只需要借助如下的一行代码.

?
1
2
# 这只是示意而已,没有什么意义
parser.add_option( '-a' , '--all' )

核心 。

作为核心就是指add_option的其他的参数。有如下几个:

  • action: 验证输入数据类型是否和type 匹配,并将符合要求的这个参数存储到dest变量中。有以下几个属性:

1.store 默认值 - store_false 标记而已 配合下边的那个store_true来进行代码的“标记”,辅助流程控制.

2.store_true 标记而已 。

  • type : 指的是对应于参数,如-f,-n等的接下来的那个参数的数据类型,有string,int,float等等
  • dest : 用于保存临时变量,其值可以作为options的属性进行访问。存储的内容就是如-f,-n 等紧挨着的那个参数内容。
  • help: 提供用户友好的帮助信息,一般可以用来解释本add_option方法的功能阐述。

单纯的讲起来很枯燥,下面看一个小例子就会明白了.

?
1
2
3
4
5
6
>>> parser.add_option( "-f" , "--file" ,action = "store" , type = "string" , dest = "filename" )
<Option at 0x2d72f48 : - f / - - file >
>>> args = [ "-f" , "foo.txt" ] #这个是模拟命令行的输入
>>> (options, args) = parser.parse_args(args)
>>> options.filename
'foo.txt'

对于action属性可以看看接下来的这段代码.

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
>>> from optparse import OptionParser
>>> parser = OptionParser()
>>> parser.add_option( "-v" , action = "store_true" , dest = "verbose" )
<Option at 0x2ceb888 : - v>
>>> parser.add_option( "-q" , action = "store_false" , dest = "verbose" )
<Option at 0x2d68e48 : - q>
>>> fakeArgs = [ '-v' , 'hello' ]
>>> options, args = parser.parse_args(fakeArgs)
>>> options.verbose
True
>>> fakeArgs = [ '-q' , 'bye bye' ]
>>> options, args = parser.parse_args(fakeArgs)
>>> options.verbose
False
#如果同时写两个选项v和q,它会以哪个为准呢,答案是以最后出现的为准
>>> fakeArgs = [ '-q' , 'bye bye' , '-v' , 'hello' ]
>>> options, args = parser.parse_args(fakeArgs)
>>> options .verbose
True

非核心 。

这里主要是讲解一下关于default参数的作用,其实就是给dest的默认值.

如果我们没有指定dest的值的话,default的值就会作为dest的默认值来进行使用! 。

?
1
2
3
4
5
>>> parser.add_option( "-x" , action = "store" , dest = "verbose" , default = "defaultvalue" )
<Option at 0x2d77148 : - x>
>>> options, args = parser.parse_args() #这里没有传参数
>>> options.verbose
'defaultvalue'

完整的demo 。

?
1
2
3
4
5
6
7
8
9
10
11
12
13
from optparse import OptionParser
usage = "myprog[ -f <filename>][-s <xyz>] arg1[,arg2..]"
optParser = OptionParser(usage)
optParser.add_option( "-f" , "--file" ,action = "store" , type = "string" ,dest = "fileName" )
ooptParser.add_option( "-v" , "--vison" , action = "store_false" , dest = "verbose" ,default = 'None' ,
            help = "make lots of noise [default]" )
fakeArgs = [ '-f' , 'file.txt' , '-v' , 'good luck to you' , 'arg2' , 'arge' ]
options, args = optParser.parse_args(fakeArgs)
print options.fileName
print options.verbose
print options
print args
print optParser.print_help()

运行结果如下:

file.txt False {'verbose': False, 'fileName': 'file.txt'} ['this is some what', 'arg2', 'arge'] Usage: myprog[ -f <filename>][-s <xyz>] arg1[,arg2..] Options: -h, --help show this help message and exit -f FILENAME, --file=FILENAME -v, --vison make lots of noise [default] 。

总结 。

以上就是本文关于Python中optparser库用法详解的全部内容,希望对大家有所帮助。感兴趣的朋友可以继续参阅本站其他相关专题,如有不足之处,欢迎留言指出。感谢朋友们对本站的支持! 。

原文链接:http://blog.csdn.net/Marksinoberg/article/details/51842197 。

最后此篇关于Python中optparser库用法实例详解的文章就讲到这里了,如果你想了解更多关于Python中optparser库用法实例详解的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com