20200816 -
引言
python自带了命令行解析的库argparse,利用这个就能达到不错的效果。
基础使用
前期学习中,主要参考了文章[1],使用过程中,主要涉及两个方面,定位参数,以及可变参数。当前只使用一个定位参数。
初始化
import argparse
parser = argparse.ArgumentParser()
parser.add_argument("file", help = "input file name")
args = parser.parse_args()
print(args)
上述命令初始化一个解析器,然后添加了一个定位参数,之后就可以解析相应的命令。
定位参数
添加定位参数时,第一个参数没有"–"开头,使用过程前面所示。如果没有指定定位参数,程序会自动退出。
可选参数
parser.add_argument("--test", help = "test opts")
args = parser.parse_args()
print(args)
通过加上"–",该参数变为可选参数,可选参数在没有传递的情况下,会赋值None。
同时还有一种参数是赋值布尔值,通过指定参数action = store_true
。
同时,还可以指定type=int
将相应的参数进行类型转换。
具体内容可以详细参考文章[1]。
附录
在解析参数之后,返回的对象是一个Namespace对象,这种情况不能使用[‘key’]的形式访问,只能是.key访问。如果想变成字典形式的访问,使用函数vars
。