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

  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中自动检测命令行参数。

时间: 2024-12-24 03:14:11

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

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

上一节,我们讲解了ArgumentParser对象,这一节我们将学习这个对象的add_argument()方法. add_argument()方法的定义了如何解析一个命令行参数,每个参数都有各自独立的设置参数. 1.name or flags add_argument()必须知道参数是可选的还是必须的位置参数,第一个传递给add_arguments的参数必须是可选参数或者是位置参数,例如,下面是可选参数. >>> parser.add_argument('-f','--foo') 而位置

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

上一节我们讲解了add_argument()方法,这一节我们将学习parse_args()方法. parse_args()方法的作用是解析命令行参数,并返回解析之后的命名空间.默认的,参数从sys.argv中获取.       1.参数值语法 parse_args()支持多种语法来解析参数,最简单的方式如下,参数与值分开传递 >>> parser = argparse.ArgumentParser(prog='PROG') >>> parser.add_argument

转:python命令行解析工具Argparse

转自:http://www.cnblogs.com/jianboqi/archive/2013/01/10/2854726.html 最近在研究pathon的命令行解析工具,argparse,它是Python标准库中推荐使用的编写命令行程序的工具. 以前老是做UI程序,今天试了下命令行程序,感觉相当好,不用再花大把时间去研究界面问题,尤其是vc++中尤其繁琐. 现在用python来实现命令行,核心计算模块可以用c自己写扩展库,效果挺好. 学习了argparse,在官方文档中找到一篇toturia

python之命令行解析工具argparse

以前写python的时候都会自己在文件开头写一个usgae函数,用来加上各种注释,给用这个脚本的人提供帮助文档. 今天才知道原来python已经有一个自带的命令行解析工具argparse,用了一下,效果还不错. argparse的官方文档请看 https://docs.python.org/2/howto/argparse.html#id1 from argparse import ArgumentParser p = ArgumentParser(usage='it is usage tip'

Python命令行解析库argparse

python标准库推荐使用argparse模块对命令行进行解析. 创建解析器 import argparse parser = argparse.ArgumentParser() 创建一个ArgumentParser实例对象,ArgumentParser对象的参数都为关键字参数. class ArgumentParser (prog=None, usage=None, description=None, epilog=None, parents=[], formatter_class=argpa

Python命令行解析库argparse(转)

原文:http://www.cnblogs.com/linxiyue/p/3908623.html 2.7之后python不再对optparse模块进行扩展,python标准库推荐使用argparse模块对命令行进行解析. 1.example 有一道面试题:编写一个脚本main.py,使用方式如下: main.py -u http://www.sohu.com -d 'a=1,b=2,c=3' -o /tmp/index.html 功能要求:打开-u指定的页面,将页面中所有的链接后面增加参数a=

命令行解析工具argparse简单使用-1

1.基本使用#01.py import argparse parser = argparse.ArgumentParser()    parser.parse_args() $ python 01.py$$ python 01.py --helpusage: 01.py [-h] optional arguments:  -h, --help  show this help message and exit 2.位置参数#02.py import argparse parser = argpar

Python中最好用的命令行解析工具:argparse

Python 做为一个脚本语言,可以很方便地写各种工具.当你在服务端要运行一个工具或服务时,输入参数似乎是一种硬需(当然你也可以通过配置文件来实现). 如果要以命令行执行,那你需要解析一个命令行参数解析的模块来帮你做这个苦力活. Python 本身就提供了三个命令行参数解析模块,我这里罗列一下它们的大致情况供你了解. getopt,只能简单的处理命令行参数 optparse,功能强大,易于使用,可以方便地生成标准的.符合Unix/Posix 规范的命令行说明.(Python2.7以后弃用,不会继

Google开源命令行解析工具gflags

转自:https://blog.csdn.net/achelloworld/article/details/41959595# gflags是google开源的一套命令行参数解析工具,支持C++和Python语言,其使用方法: 1. 定义参数  使用gflags需要包含头文件#include <gflags/gflags.h>.将需要的命令行参数使用gflags的宏:DEFINE_xxxxx(变量名,默认值,help-string) 定义在文件当中,定义的参数是全局的,gflags支持的参数类