分享

argparse模块的使用 | python

 印度阿三17 2019-08-09

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

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多