Python argparse模块简介


Python 解析命令行读取参数有这两种方式:sys.argv和argparse



什么是命令行与参数解析?

通俗来说,命令行与参数解析就是当你输入cmd 打开dos 交互界面时候,启动程序要进行的参数给定。比如在dos 界面输入:python example.py "a" -b "number"

其中的"a", -b 等就是命令行与参数解析要做的事。
这在Windows 系统下用处不是特别大,因为Windows 下各种编译器,你根本不需要在dos 界面下去执行python 脚本。但是在linux 系统下,你几乎要总是考虑命令行解析。
和操作系统无关,就是设计程序在运行时必须给定某些额外参数才能运行,也就是如果设置了命令行参数解析,那么各种编译器按F5 是无法直接运行程序的。用途,就是不能随便就能运行脚本,可以达到一定程度上的安全功能。

sys.argv

如果脚本很简单或临时使用,没有多个复杂的参数选项,可以直接利用sys.argv将脚本后的参数依次读取(读进来的默认是字符串格式)。

import sys
print("输入的参数为: %s" % sys.argv[1])

命令行执行效果:

>>> python example.py 1
输入的参数为: 1

如果参数很多,比较复杂,并且类型不统一,那么argparse可以很好的解决这些问题,下面一个实例解释了argparse的基本使用方法。
1. 创建解析
2. 添加参数
3. 解析参数

简单创建:

import argparse

parser = argparse.ArgumentParser(description='Process some integers.')
parser.add_argument('integers', metavar='N', type=int, nargs='+',
                    help='an integer for the accumulator')
parser.add_argument('--sum', dest='accumulate', action='store_const',
                    const=sum, default=max,
                    help='sum the integers (default: find the max)')

args = parser.parse_args()
print(args.accumulate(args.integers))

在dos 界面执行:

python prog.py -h
usage: prog.py [-h] [--sum] N [N ...]

Process some integers.

positional arguments:
 N           an integer for the accumulator

optional arguments:
 -h, --help  show this help message and exit
 --sum       sum the integers (default: find the max)

ps.参考链接: argparse

你可能感兴趣的:(python)