argparse学习记录

2019/01/03 Python Python模块

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

六、更多

更多参数使用可参照

  • https://www.jianshu.com/p/fef2d215b91d
  • http://blog.xiayf.cn/2013/03/30/argparse/

Search

    Table of Contents