python3 argparse模块

argparse模块为python3中处理命令行参数的库
命令行参数分为位置参数和可选参数, 例:
ls home #位置参数
ls -l #可选参数

简单示例, 主要有三个步骤

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

位置参数

test.py 文件

import argparse

parse = argparse.ArgumentParser()
parse.add_argument('test') #添加参数 test
args = parse.parse_args()
print(args)

执行命令 python test.py -h

usage: test.py [-h] test

positional arguments:
  test

optional arguments:
  -h, --help  show this help message and exit

# 可以看到多了一个位置参数test

执行命令 python test.py 123

Namespace(test='123')

# 已经成功赋值, 默认为字符串

可选参数

test.py 文件

import argparse

parse = argparse.ArgumentParser()
parse.add_argument('-l') #添加可选参数 -l
args = parse.parse_args()
print(args)

执行命令 python test.py -h

usage: test.py [-h] [-l L]

optional arguments:
  -h, --help  show this help message and exit
  -l L

# 可以看到多了一个位置参数 -l

执行命令 python test.py -l 123

Namespace(l='123')

# 已经成功赋值, 默认为字符串

parse.add_argument('-l', '--list')
执行命令 python test.py -l 123

Namespace(list='123')

# 可选参数两种调用方法, l和list都能用, 最后参数为list

add_argument 方法常用参数

ArgumentParser.add_argument(name or flags…[, action][, nargs][, const][, default][, type][, choices][, required][, help][, metavar][, dest])

help – 参数的帮助信息
parse.add_argument('-l', '--list', help='help~help~')

# python test.py -h
usage: test.py [-h] [-l LIST]

optional arguments:
  -h, --help            show this help message and exit
  -l LIST, --list LIST  help~help~

type – 命令行参数应该被转换成的类型
parse.add_argument('-l', '--list', type=int)

# python test.py -l 123
Namespace(list=123)

# python test.py -l test
usage: test.py [-h] [-l LIST]
test.py: error: argument -l/--list: invalid int value: 'test'
(错误, 提示必须输入整数)

choices – 取值范围
parse.add_argument('-l', '--list', type=int, choices=[0,1,2])

# python test.py -l 1
Namespace(list=1)

# python test.py -l 5
usage: test.py [-h] [-l {0,1,2}]
test.py: error: argument -l/--list: invalid choice: 5 (choose from 0, 1, 2)

dest – 解析后的参数名称
parse.add_argument('-l', '--list', dest='test')

# python test.py -l 123
Namespace(test='123')

default – 默认值
parse.add_argument('-l', '--list', type=int, default=0)

# python test.py -l 123
Namespace(list=123)

# python test.py
Namespace(list=0)

required – 可选参数是否可以省略, 仅针对可选参数
parse.add_argument('-l', '--list', type=int, required=True)

# python test.py -l 123
Namespace(list=123)

# python test.py
usage: test.py [-h] -l LIST
test.py: error: the following arguments are required: -l/--list

nargs – 应该读取的命令行参数个数, 可以是具体的数字, 或者是 ? 号(0或者1个参数),或者是 * 号(0或多个参数), 或者是 + 号(1或多个参数)
parse.add_argument('-l', '--list', type=int, nargs='?')

# python test.py -l 1
Namespace(list=1)

# python test.py -l 1 2
usage: test.py [-h] [-l [LIST]]
test.py: error: unrecognized arguments: 2

action=‘store_true’ / action=‘store_false’ – 保存相应的布尔值, 这两个动作被用于实现布尔开关
parse.add_argument('-l', '--list', action='store_true')

# python test.py
Namespace(list=False)

# python test.py -l
Namespace(list=True)

互斥参数

import argparse

parse = argparse.ArgumentParser()
group = parse.add_mutually_exclusive_group()
group.add_argument('-x')
group.add_argument('-y')
args = parse.parse_args()
print(args)
# python test.py -x 2
Namespace(x='2', y=None)

# python test.py -y 3
Namespace(x='None', y='3')

#python test.py -x 2 -y 3
usage: test.py [-h] [-x X | -y Y]
test.py: error: argument -y: not allowed with argument -x





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值