argparse模块的使用 | 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

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

其他选项:…

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值