VB.net 2010 视频教程 VB.net 2010 视频教程 python基础视频教程
SQL Server 2008 视频教程 c#入门经典教程 Visual Basic从门到精通视频教程
当前位置:
首页 > temp > python入门教程 >
  • python命令行传参详解,optparse模块OptionParse类的学习

官网链接:https://docs.python.org/3/library/optparse.html

 https://docs.python.org/2/library/argparse.html

from optparse import OptionParser
parser = OptionParser()
parser.add_option("-f", "--file", dest="filename",
                  help="write report to FILE", metavar="FILE")
(options, args) = parser.parse_args()
print(options,type(options),args,type(args))   #print(type([]))  结果:<class 'list'>

options,是个类,dest是键值对里的键,值是None,args是列表,空

没传参的时候

 -f 空格指定字符串,会将它作为dest里filename的值,

 我再加一个短横线,结果还是可以的  --f

 使用--file 也可以

 其它字符串,不在--file后的那个,无论在它前面还是后面,都加进了args列表里。

临时给程序加个-m

 也是可以用的

 后面再用这个的,被覆盖掉了

 代码现在如下,调用它的值

 调用它的值,点来调用

1
2
3
4
5
6
7
8
9
from optparse import OptionParser
parser = OptionParser()
parser.add_option("-f""--file", dest="filename",
                  help="write report to FILE", metavar="FILE")
(options, args) = parser.parse_args()
with open('%s'%options.filename,mode='w',encoding='utf-8'as f:
    f.write('我是小马过河')
if "mcw" in args:
    print('欢迎mcw',args)

  这样就可以指定文件做操作,传参中有啥参数也可以做对应参数了。

 

-h或者--help可以查看帮助信息,指定参数的介绍信息

 

 添加-q参数,多了一组键值对,命令行加上-q值是假,不加也就是默认是真。(自解:可用于某个功能或其它是否开启或其他并给出默认状态)

 代码

官网介绍

 官网介绍
<yourscript> --file=outfile -q

因此,以下命令行都等效于上面的示例:

<yourscript> -f outfile --quiet
<yourscript> --quiet --file outfile
<yourscript> -q -foutfile
<yourscript> -qfoutfile
 官网介绍2

最常见的选项操作是store,它告诉optparse采用下一个参数(或当前参数的其余部分),确保它的类型正确,并将其存储到您选择的目的地。

例如:

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

 

模拟传参,假的传参,结果一样

 

 终端上效果一致的传参,不用创建列表,将列表传进去,貌似argv[1:]的参数就是一个列表,默认传递到parse_args方法中,遇到定义的-f之类的,就会将后面那个值存到dest中,作为定义的dest的值,而其它没用add_option的就传到args列表中

 不加类型,传递的是字符串。action默认是store,可以不填

 要想传递进去是个数字,就要加类型的参数是int

 还可以拼接在一起传参

 之前的也可以简写:也可以拼在一起传参

  选项参数是42 选项卡是-n               这一次,我们将选项参数与选项卡在一起:因为-n42(一个参数)等价于 (两个参数),代码-n 42 传递进的是["-n42"]

 -q没有默认值,不传参就是None,传了参数就是false

 可以引号引起来当成一个

 选项卡刚刚试了试可以是传字母数字字符串,但是-只能加一个字符串,;要想用多个字符串,必须用--添加长字符串

 官网帮助信息生成
 执行生成帮助代码

定义帮助信息中%default会使用默认的值,%prog代表脚本名字,定义了Usage消息

 至此,命令行传参大部分场景可以使用了,其它功能有时间再补充

 


相关教程