argparse模块
argparse是一个Python模块:命令行选项、参数和子命令解析器。
argparse
模块可以让人轻松编写用户友好的命令行接口。程序定义它需要的参数,然后argparse
将从syas.argv
解析输入的参数。
使用流程
- 创建解析器
parser = argparse.ArgumentParser(description='Process some integers.')
使用argparse
的第一步是创建一个ArgumentParser
对象。
ArgumentParser
对象包含将命令行解析成Python数据类型所需的全部信息。
- 向parser对象中添加想要关注的命令行参数和选项
parser.add_argument(
'--flag_int',
type=float,
default=0.01,
help='flag_int.'
)
- 解析命令行
FLAGS, unparsed = parser.parse_known_args()
其中,FLAGS为namespace空间,包含程序定义了的命令行参数,而unparsed为程序没有定义的命令行参数。如果命令行输入没有定义的参数,程序不会报错,并且返回一个列表给unparsed,里面包含的就是未定义的输入参数。
举例:
在命令行运行程序如下:
$ python prog.py --flag_int 0.02 --double 0.03 a 1
此时,FLAGS为 Namespace(flag_int=0.02)
unparsed为 ['--double', '0.03', 'a', '1']