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
使用了命名空间之后,就需要索引其命名空间来寻找对应的参数值。
其他选项:…
来源:https://www./content-1-383551.html
|