https://zhuanlan.zhihu.com/p/56922793
https://docs.python.org/zh-cn/dev/library/argparse.html#module-argparse
总结自:https://www.youtube.com/watch?v=cdblJqEUDNo
国内可访问:https://www.bilibili.com/video/BV1nb41157Zc?from=search&seid=1129874400953908710
该模块可以实现命令行选择参数。
如果不用该模块,计算一个圆柱体体积很麻烦。每次圆柱体的半径和高度变化时,需要打开编辑器进行改变。:
如果使用该模块:
一共三步:
- 创建一个解析器
- 添加参数
- 解析参数
第7行中:description是对这个解析器对象的描述。
第8、第9行则实现了添加两个参数,分别是radius和height,参数类型这里指定为了int(默认为str),这里的help则是对这两个参数的描述。
第10、第17行实现了步骤3。对参数进行了解析。
运行结果如下:
这里是位置参数,需要固定对radius和height的输入顺序,不方便。因此我们将参数类型改为可选参数:
这时在命令行可以输入如下:
(至于为什么会出现RADIUS和HEIGHT的大写,我不是很懂,但不影响使用吧。。。)
但这样输出很冗余,因此我们使用metavar属性实现简化。
输出结果如下,可以发现,确实更简洁了。
需要注意-r和-H是可选参数,可以不输入,编译器默认给他赋值一个None的值,但这样会导致运行结果出错。避免这种现象的产生需要另一个required属性:
关于互斥组概念:
不能同时传入。
还有default属性的概念,顾名思义:
parse.add_argument(’-a’,’–abc’,help=‘a sourcedir’,action=‘store_true’,default=3)
//这时如果加上default的关键字,如果加上参数的话为则参数的值为1,但如果不加则采用默认的3,不再是0
https://blog.csdn.net/yuyushikuan/article/details/79729660
关于action:https://blog.csdn.net/zkq_1986/article/details/85287896
创建一个a.py
文件。文件内容如下。
import argparse
parser = argparse.ArgumentParser()
parser.add_argument('--t', help=' ', action='store_true', default=False)
config = parser.parse_args()
print(config.t)
————————————————
版权声明:本文为CSDN博主「zkq_1986」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/zkq_1986/article/details/85287896
运行python a.py
,输出结果False
运行python a.py --t
,输出结果True
即action=‘store_true’,只要运行时该变量有传参就将该变量设为True。
目前就用到了这些,其他的用到再说。