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. jquery 使用ajax调用c#后台方法

    $.ajax({                         type: "get",                         cache: false,        ...

  2. 315M无线发射模块天线的长度计算

    波长=光速/频率=300/315=0.952米 1/4波长须要的天线长度=波长*1/4=0.952/4=0.238米 考虑导线传播高频信号的缩短率在0.98左右,因此天线长度=0.238*0.98=0 ...

  3. ASP.NET之电子商务系统开发-3(订单)

    一.前言 继上次的购物车,这是第三篇.记录一下订单功能.这功能做的时候,走过弯路,很是烧脑,因为思路没理顺,数据库设计的也不怎么好,做到一半才发现有问题,接着把数据库重新设计好,理清思路后,终于完成了 ...

  4. UVa1583 Digit Generator

    #include <stdio.h> int main(){    int T, N, i, k, digitsum, generator;    scanf("%d" ...

  5. 类中成员函数与数据成员private/pubic/protected

    类中成员函数与数据成员private/pubic/protected

  6. jquery获取多个checkbox的值异步提交给php

    html代码: <tr> <td><input type="checkbox" name="uid" value="&l ...

  7. R语言学习笔记之外部文件读取

    在win32位的系统下,RODBC包内的函数是可以直接运行的,但在win64位的系统则不支持! 1.读取外部文件read.table()---csv,txt,excel 最基本函数是read.tabl ...

  8. poj 2074 Line of Sight 计算几何

    /** 大意:给定一个建筑--水平放置,给定n个障碍物, 给定一条街道,从街道上能看到整个建筑的最长的连续的区域 思路: 分别确定每一个障碍物所确立的盲区,即----建筑物的终点与障碍物的起点的连线, ...

  9. Oracle SQL篇(三)Oracle ROWNUM 与TOP N分析

        首先我们来看一下ROWNUM: 含义解释: 1.rownum是oracle为从查询返回的行的编号,返回的第一行分配的是1,第二行是2,依此类推.这是一个伪列,可以用于限制查询返回的总行数. 2 ...

  10. 原型扩展的方法解决IE和Firefox的Js兼容问题

    if(!document.all){//textContent->text    Element.prototype.__defineGetter__('text',function(){ret ...