• argparse学习记录
  • 一、什么是argparse?
  • 二、简单使用
  • 三、定位参数
  • 四、可选参数
  • 五、特殊用法
  • 六、更多


argparse学习记录

一、什么是argparse?

argparse 是 Python 内置的一个用于命令项选项与参数解析的模块,通过在程序中定义好我们需要的参数,argparse 将会从 sys.argv 中解析出这些参数,并自动生成帮助和使用信息。
它可以快速的处理错误的参数提供(默认输出help信息),也可以快速的提供用户定义的帮助信息。

二、简单使用

  • 创建 ArgumentParser() 对象
  • 调用 add_argument() 方法添加参数
  • 使用 parse_args() 解析添加的参数
# -*- coding: utf-8 -*-

import argparse

parser = argparse.ArgumentParser()
parser.add_argument('integer', type=int, help='display an integer')
args = parser.parse_args()

print args.integer

三、定位参数

定位参数就是必然需要一个参数,并且根据add_argument语句的位置而确定,即如果定义了两个定位参数,则命令行必须提供两个参数,并且根据顺序赋值。

# 定位参数名不带‘-’或‘--’,
# type即定位给的参数的类型,
# help即可在命令行-h自动调用
parser.add_argument('integer', type=int, help='display an integer')

调用方式:

python test.py 3

四、可选参数

中文名叫可选参数,有两种方式:
- 一种是通过一个-来指定的短参数,如-h;
- 一种是通过–来指定的长参数,如–help;

# 定位参数名带‘-’或‘--’,(可以只带一个,也可以两个都带)
# type即跟在可选参数之后数据的类型,
# help即可在命令行-h自动调用
parser.add_argument('-i', type=int, help='display an integer')
parser.add_argument('--integer', type=int, help='display an integer')
parser.add_argument('-i', '--integer', type=int, help='display an integer')

调用方式:

python test.py -i 12
python test.py --integer 12

五、特殊用法

1、可选参数默认需要跟一个数据项,但也可以不跟(例如linux指令:ls -al)

# 去掉type参数,将action参数改为“store_true”
# 这样命令行如果出现了--test则会返回True,否则返回False
parse.add_argument('--test', help='功能测试模式', action="store_true")

2、定位参数和可选参数的数据项,只可从特定选项中选取
需要用到关键字choices。

parser = argparse.ArgumentParser()
parser.add_argument('-r', type=str, help='重启方式', choices=['reboot', 'power_reset'])
args = parser.parse_args()
# 调用过程
>$python reboot.py -r reboot
>$python reboot.py -r power_reset