码迷,mamicode.com
首页 > 编程语言 > 详细

python命令行解析工具argparse模块【1】

时间:2015-09-21 21:05:06      阅读:136      评论:0      收藏:0      [点我收藏+]

标签:

  argpaser是python中很好用的一个命令行解析模块,使用它我们可以很方便的创建用户友好型命令行程序。而且argparse会自动生成帮助信息和错误信息。

一、示例

  例如下面的例子,从命令行中获取几个整数,然后获取它们的和或者最大值。

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)

  从命令行中输入prog.py -h,会显示如下信息

$ 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)

  如果使用合适的参数,还可以求和或者取得最大值。

$ prog.py 1 2 3 4
4

$ prog.py 1 2 3 4 --sum
10
   如果传递错误的参数,将返回错误信息。
$ prog.py a b c
usage: prog.py [-h] [--sum] N [N ...]
prog.py: error: argument N: invalid int value: a
    下面我们详细解释这个例子:
        1.创建parser
        首先,创建一个ArgumentParser对象。
>>> parser = argparse.ArgumentParser(description=Process some integers.)
        ArgumentParser对象中保存着解析命令行参数所必需的信息。
        2.添加参数
        通过调用add_argument()方法将命令行中的参数保存到ArgumentParser对象中。
>>> 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))

   后面再调用parse_args(),将会返回一个包含integers和accumulate两个属性的对象,integers是一个列表,而accumulate可以是sum()函数(如果指定了--sum)或者max()函数。

  3.解析参数
    通过parse_args()方法解析参数,返回一个命名空间对象。
>>> parser.parse_args([--sum, 7, -1, 42])
Namespace(accumulate=<built-in function sum>, integers=[7, -1, 42])
     如果在脚本中调用这个函数,parse_args()不会解析任何参数。ArgumentParser会从sys.argv中自动检测命令行参数。

python命令行解析工具argparse模块【1】

标签:

原文地址:http://www.cnblogs.com/fireflow/p/4826985.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!