python-argparse模块使用

argparse使用

简介

  • python的argparase主要用来解析参数,比较方便
  • 可以解析可选参数或者必选参数

简单示例

  • 创建ArgumentParser()对象
  • 调用add_argument()方法添加参数
  • 使用parse_args()解析添加的参数
example:
import argparse

# 创建对象
parser = argparse.ArgumentParser()

# 添加参数
parser.add_argument('name', help='name info')
parser.add_argument('gender', help='gender', type=str)
parser.add_argument('--age', help='integer', type=int)

# 使用parse_args解析参数
args = parser.parse_args()
name = args.name
gender = args.gender
age = args.age

print(type(name), name)
print(type(gender), gender)
print(type(age), age)

不加然后参数直接运行

python pack_argparse.py
  • 打印结果
    在这里插入图片描述
  • 提示正确用法和报错内容,namegender是必须要传的参数
    加两个必须传的参数运行
python pack_argparse.py jack man
  • 打印结果
    在这里插入图片描述
    pycharm运行方法
  • 第一步
    在这里插入图片描述
  • 第二步:传入参数,空格隔开
    在这里插入图片描述

将必传参数和选传参数全部传入

python pack_argparse.py jack man 20

发现程序报错
在这里插入图片描述

  • 第三个选传参数是未被认可的参数,传参的格式有误,导致这样的报错
    正确的传入选传参数的格式
python pack_argparse.py jack man --age 20
  • 打印结果
    在这里插入图片描述
    也可以传入多个可选参数
import argparse

# 创建对象
parser = argparse.ArgumentParser()

# 添加参数
parser.add_argument('name', help='name info')
parser.add_argument('gender', help='gender', type=str)
parser.add_argument('-num', '--age', help='integer', type=int)

# 使用parse_args解析参数
args = parser.parse_args()
name = args.name
gender = args.gender
age = args.age

print(type(name), name)
print(type(gender), gender)
print(type(age), age)

# ouuput
(utopia) F:\code\utopia>python pack_argparse.py jack man -num 678
<class 'str'> jack
<class 'str'> man
<class 'int'> 678
# ouuput
(utopia) F:\code\utopia>python pack_argparse.py jack man --age 20
<class 'str'> jack
<class 'str'> man
<class 'int'> 20

指定可选参数的取值范围,用关键字choices:

parser.add_argument('-num', '--age', choices=[20,21,22], help='integer', type=int)
  • 运行程序
(utopia) F:\code\utopia>python pack_argparse.py jack man --age 25
usage: pack_argparse.py [-h] [-num {20,21,22}] name gender
pack_argparse.py: error: argument -num/--age: invalid choice: 25 (choose from 20, 21, 22)
  • 如果可选参数不在给定范围内,程序会提示
  • 当可选参数在范围内是,程序会正常执行
(utopia) F:\code\utopia>python pack_argparse.py jack man --age 22
<class 'str'> jack
<class 'str'> man
<class 'int'> 22

指定关键字default来指定选项默认的值

parser.add_argument('-num', '--age', default=20, help='integer', type=int)
(utopia) F:\code\utopia>python pack_argparse.py jack man
<class 'str'> jack
<class 'str'> man
<class 'int'> 20
  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值