官网链接:https://docs.python.org/3/library/optparse.html
https://docs.python.orghttps://cdn.jxasp.com:9143/image/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 |
|
这样就可以指定文件做操作,传参中有啥参数也可以做对应参数了。
-h或者--help可以查看帮助信息,指定参数的介绍信息
添加-q参数,多了一组键值对,命令行加上-q值是假,不加也就是默认是真。(自解:可用于某个功能或其它是否开启或其他并给出python教程默认状态)
代码
官网介绍
官网介绍
<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消息
至此,命令行传参大部分场景可以使用了,其它功能有时间再补充