天天看点

argparse模块的使用 | pythonargparse模块的使用 | python

argparse模块的使用 | python

用于接收python命令行下的命令行参数,并进行多种功能解析的模块

基本使用步骤:

定义一个文件名为test_parse.py的文件,内容如下:

from argparse import ArgumentParser  # 其中最常用的一个模块:ArgumentParser
# 定义一个命令行参数解析器对象
parser = ArgumentParser()
# 为命令行添加一个参数,参数名为argname1
parser.add_argument("argname1")
# 返回命令行参数的集合的某种数据结构对象,args里存放了所有添加的命令行参数
args = parser.parse_args()
# 打印测试命令行参数输入是否有效
print("输入的命令行参数为", args.argname1)
           

命令行输入:

python test_parse.py 你好
           

运行结果:

输入的命令行参数为你好
           

为命令行参数添加帮助信息和数据类型

定义一个文件名为test_parse.py的文件,内容如下:

from argparse import ArgumentParser  # 其中最常用的一个模块:ArgumentParser
# 定义一个命令行参数解析器对象
parser = ArgumentParser()
# 为命令行添加一个参数,参数名为argname1,help=是帮助信息,type=是数据类型
parser.add_argument("argname1", help="argname1是参数,type=int)
# 返回命令行参数的集合的某种数据结构对象,args里存放了所有添加的命令行参数
args = parser.parse_args()
# 打印测试命令行参数输入是否有效
print("输入的命令行参数为", args.argname1)
           

添加数据类型之后,命令行的输入会被记录为指定的数据类型,默认是字符串类型。

添加的help=参数,当命令行输入时,添加 -h 选项可以显示出来。

命令行分别输入:

python test_parse.py -h
           

运行结果:

...
argname1   argname1是参数
...
           

指定输入参数命

当我们只想给某几个参数名输入参数时

定义一个文件名为test_parse.py的文件,内容如下:

from argparse import ArgumentParser  # 其中最常用的一个模块:ArgumentParser
# 定义一个命令行参数解析器对象
parser = ArgumentParser()
# 为命令行添加一个参数,参数名为argname1,help=是帮助信息,type=是数据类型
# 在参数名前面加两个 -- 就可以指定参数名来输入参数
parser.add_argument("--argname1", help="argname1是参数", type=int)
parser.add_argument("--argname2", help="argname2时参数", type=int)
# 返回命令行参数的集合的某种数据结构对象,args里存放了所有添加的命令行参数
args = parser.parse_args()
# 打印测试命令行参数输入是否有效
if args.argname1:
	print("argname1为", args.argname1)
if args.argname2:
	print("argname2为", args.argname2)
           

命令行输入

python test_parse.py --argname1 12
           

测试输出

argname1为 12
           

选项命令的引入(进阶篇)

设置开关量

由上面的基础,下面的代码,就以片段的形式给出。

parser.add-argument("-a", "--argname1", action="store_true")
args = parser.parse_args()
if args.argname1:
	print("argname1 is ", args.argname1)
           

命令行分别输入

python test_parse.py -a
python test_parse.py --argname1
python test_parse.py 
           

输出结果

argname1 is True
argname1 is True

           

说明:当命令行参数输入 -a 或者 --argname1时,会将action的值给命令行参数,即此时argname1=True。否则argname1=False。

设置参数的命名空间

# 参数dest设置命名空间,之后该参数就需要使用_argname_space来表示,而不能使用argname1
parser.add_argument("-a", "--argname1", dest="_argname_space")
args = parser.parse_args()
print("输入为:", args._argname_space)
           

命令行输入

# 这种命名空间的用法应该就是将命令行参数于实际参数名分割开来
python test_parse.py -a 12
           

输出为

输入为: 12
           

使用了命名空间之后,就需要索引其命名空间来寻找对应的参数值。

其他选项:…