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', '', '-1', ''])
Namespace(accumulate=<built-in function sum>, integers=[7, -1, 42])

     如果在脚本中调用这个函数,parse_args()不会解析任何参数。ArgumentParser会从sys.argv中自动检测命令行参数。

python命令行解析工具argparse模块【1】的更多相关文章

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

    上一节,我们讲解了ArgumentParser对象,这一节我们将学习这个对象的add_argument()方法.         add_argument()方法的定义了如何解析一个命令行参数,每个参 ...

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

    上一节,我们简要的介绍了argparse的用法,接下来几节,将详细讲解其中的参数及用法,这一节我们讲解ArgumentParser对象. argparse.ArgumentParser([descri ...

  3. python命令行解析工具argparse模块【5】

            上一节我们学习了parse_args()的用法,这一节,我们将继续学习argparse的其他一些用法.         1.sub-commands子命令         argpar ...

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

            上一节我们讲解了add_argument()方法,这一节我们将学习parse_args()方法.          parse_args()方法的作用是解析命令行参数,并返回解析之后的 ...

  5. Python 命令行解析工具 Argparse介绍

    最近在研究pathon的命令行解析工具,argparse,它是Python标准库中推荐使用的编写命令行程序的工具. 以前老是做UI程序,今天试了下命令行程序,感觉相当好,不用再花大把时间去研究界面问题 ...

  6. python之命令行解析工具argparse

    以前写python的时候都会自己在文件开头写一个usgae函数,用来加上各种注释,给用这个脚本的人提供帮助文档. 今天才知道原来python已经有一个自带的命令行解析工具argparse,用了一下,效 ...

  7. Python命令行解析库argparse

    2.7之后python不再对optparse模块进行扩展,python标准库推荐使用argparse模块对命令行进行解析. 1.example 有一道面试题:编写一个脚本main.py,使用方式如下: ...

  8. Python命令行解析库argparse(转)

    原文:http://www.cnblogs.com/linxiyue/p/3908623.html 2.7之后python不再对optparse模块进行扩展,python标准库推荐使用argparse ...

  9. 【python】命令行解析工具argparse用法

    python的命令行参数 之前有用到optget, optparse, 现在这些都被弃用了. import argparse parser = argparse.ArgumentParser() ar ...

随机推荐

  1. 理解angular中的module和injector,即依赖注入

    理解angular中的module和injector,即依赖注入 依赖注入(DI)的好处不再赘言,使用过spring框架的都知道.angularjs作为前台js框架,也提供了对DI的支持,这是java ...

  2. HTTP 错误

    问题描述: HTTP 错误 404.3 - Not Found 由于扩展配置问题而无法提供您请求的页面.如果该页面是脚本,请添加处理程序.如果应下载文件,请添加 MIME 映射. 解决办法: win7 ...

  3. IEEE 754标准

    IEEE 754-1985 was an industry standard for representing floating-point numbers in computers, officia ...

  4. Javascript 递归函数

    递归函数就是在函数内部调用它自己.在Javascript 中有很多写法,值得我们学习一下(Javascript太灵活了).还是用n的 阶乘 来写例子吧. 1. 首先,来看一个最普通 最正常的写法. f ...

  5. URAL 1297 Palindrome 后缀数组

    D - Palindrome Time Limit:1000MS     Memory Limit:65536KB     64bit IO Format:%I64d & %I64u Subm ...

  6. npm 安装

    1.https://nodejs.org/en/  下载node.js 控制台,查看node版本 C:\WINDOWS\system32>node --version  出现版本表示安装成功 2 ...

  7. C/C++修改常量的值

    C/C++中常量修饰const可以用来保证一些确定的量不会被一不小心改变,比如PI,一直是3.14159...... 但是不排除有时候也会需要修改常量的值,通过直接修改是不能达到目的. 比如: #in ...

  8. C++如何将一个整数输出为小数

    double a=3;                      //一定是double不能是int cout.setf(ios::fixed); cout.precision(2); cout< ...

  9. 详解H3C交换机“端口安全”功能

    以下内容摘自正在全面热销的最新网络设备图书“豪华四件套”之一——<H3C交换机配置与管理完全手册>(第二版)(其余三本分别是:<Cisco交换机配置与管理完全手册>(第二版). ...

  10. C语言(1)--准备

    经过很长一段时间的准备,终于重新弄懂了一些C语言的问题,再次熟悉了C语言的大致应用,对此略有体会,在此以博客记录于此! 准备工作: 运行平台:Linux 编辑工具:vim (还可以使用emac,ged ...