argparse模块是的编写用户友好的命令行接口非常容易。程序只需定义好它要求的参数,然后argparse将负责如何从sys.argv中解析出这些参数。argparse模块还会自动生成帮助和使用信息并且当用户赋给程序非法的参数时产生错误信息。

  使用argparse模块一般需要三个步骤:

  1、创建一个解析器

  使用argparse的第一步是创建一个ArgumentParser对象:

>>> import argparse
>>> parser = argparse.ArgumentParser()

  ArgumentParse对象会保存把命令行解析成Python数据类型所需要的所有信息。

  2. 添加参数

  通过调用add_argument()方法向ArgumentParser添加程序的参数信息。通常情况下,这些信息告诉ArgumentParser如何接收命令行上的字符串并将它们转换成对象。这些信息被保存下来并在调用parse_args()时用到。例如:

>>> parser.add_argument('--name',help='username')
_StoreAction(option_strings=['--name'], dest='name', nargs=None, const=None, default=None, type=None, choices=None, help='username', metavar=None)
>>> parser.add_argument('--pass',help='password')
_StoreAction(option_strings=['--pass'], dest='pass', nargs=None, const=None, default=None, type=None, choices=None, help='password', metavar=None)

接下来,调用parse_args()返回的对象将带有两个属性,name和pass。分别保存着用户名与密码。

  3. 解析参数

  ArgumentParser通过parse_args()方法解析参数。它将检查命令行,把每个参数转换成恰当的类型并采取恰当的动作。在大部分情况下,这意味着将从命令行中解析出来的属性建立一个简单的 Namespace对象。

>>> argments = parser.parse_args(['--name','li','--pass','si']) 

在脚本中,parse_args()调用一般不带参数,ArgumentParser将根据sys.argv自动确定命令行参数。

ArgumentParser 对象

class argparse.ArgumentParser(prog=None, usage=None, description=None, epilog=None, parents=[], formatter_class=argparse.HelpFormatter,prefix_chars='-', fromfile_prefix_chars=None, argument_default=None, conflict_handler='error', add_help=True)

创建一个新的argmentParserr对象。所有的参数应该以关键字参数传递。下面有对每个参数各自详细的描述,但是简短地讲它们是:

prog - 程序的名字(默认:sys.argv[0])

useage - 描述程序用法的字符串(默认:从解析器的参数生成)

description - 参数帮助信息之前的文本(默认:空)

epilog- 参数帮助信息之后的文本(默认:空)

parents - ArgmentParser 对象的一个列表,这些对象的参数应该包括进去

formatter_class - 定制化帮助信息的类

prefix_chars - 可选参数的前缀字符集(默认:‘-‘)

fromfile_prefix_chars - 额外的参数应该读取的文件的前缀字符集(默认:None)

argument_default - 参数的全局默认值(默认:None)

conflict_handler - 解决冲突的可选参数的策略(通常没有必要)

add_help - 给解析器添加-h/–help 选项(默认:True)

add_argument() 方法

ArgumentParser.add_argument(nameor flags...[, action][, nargs][, const][, default][, type][, choices][, required][, help][,metavar][, dest])

定义应该如何解析一个命令行参数。下面每个参数有它们自己详细的描述,简单地讲它们是:

name or flags- 选项字符串的名字或者列表,例如foo 或者-f, --foo。

action - 在命令行遇到该参数时采取的基本动作类型。

nargs - 应该读取的命令行参数数目。

const- 某些action和nargs选项要求的常数值。

default - 如果命令行中没有出现该参数时的默认值。

type- 命令行参数应该被转换成的类型。

choices - 参数可允许的值的一个容器。

required - 该命令行选项是否可以省略(只针对可选参数)。

help - 参数的简短描述。

metavar - 参数在帮助信息中的名字。

dest - 给parse_args()返回的对象要添加的属性名称。

参考链接:http://blog.csdn.net/itlance_ouyang/article/details/52489674

argparse模块的更多相关文章

  1. Python解析命令行读取参数 -- argparse模块

    在多个文件或者不同语言协同的项目中,python脚本经常需要从命令行直接读取参数.万能的python就自带了argprase包使得这一工作变得简单而规范.PS:optparse包是类似的功能,只不过写 ...

  2. 【python】argparse模块

    来源:http://www.2cto.com/kf/201412/363654.html argparse是python用于解析命令行参数和选项的标准模块,用于代替已经过时的optparse模块.ar ...

  3. python argparse模块解析命令行选项简单使用

    argparse模块的解析命令行选项简单使用 util.py #!/usr/bin/env python # coding=utf-8 import argparse parser = argpars ...

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

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

  5. Python的Argparse模块是什么?(未完)

            近日在阅读代码的过程中遇到了Argparse模块,记得前段时间已经看了,可是过了两周现在又忘了, 看来写代码一定要钻研到底搞清楚其中原委才行,本文主要参考Python3.6系列官方文档 ...

  6. Python 命令行工具 argparse 模块使用详解

    先来介绍一把最基本的用法 import argparse parser = argparse.ArgumentParser() parser.parse_args() 在执行 parse_args() ...

  7. Python Argparse模块

    argparse模块 在Python中,argparse模块是标准库中用来解析命令行参数的模块,用来替代已经过时的optparse模块.argparse模块能够根据程序中的定义从sys.argv中解析 ...

  8. Python argparse 模块

    Python argparse 模块 test.py: import argparse argparser = argparse.ArgumentParser(add_help=False) argp ...

  9. python学习之argparse模块

    python学习之argparse模块 一.简介: argparse是python用于解析命令行参数和选项的标准模块,用于代替已经过时的optparse模块.argparse模块的作用是用于解析命令行 ...

随机推荐

  1. 【代码笔记】Web-JavaScript-JavaScript 运算符

    一,效果图. 二,代码. <!DOCTYPE html> <html> <head> <meta charset="utf-8"> ...

  2. Building QGIS from source - step by step (开发文档翻译1)

    1. 简介 原文网址:http://htmlpreview.github.io/?https://raw.github.com/qgis/QGIS/master/doc/INSTALL.html 本文 ...

  3. 排错-Loadrunner录制打不开浏览器解决方法

    排错-Loadrunner录制打不开浏览器解决方法 by:授客 QQ:1033553122 问题描述: 采用自带的web测试站点http://127.0.0.1:1080/WebTours/,进行录制 ...

  4. Java面试题总结(不定期更新)

    1.HashMap和Hashtable的区别? HashMap:key.value都可以为空,线程不安全.初始容量16,扩容方式每次为2倍 Hashtable:不支持null key 和null va ...

  5. leetcode-67.二进制求和

    leetcode-67.二进制求和 Points 数组 数学 题意 给定两个二进制字符串,返回他们的和(用二进制表示). 输入为非空字符串且只包含数字 1 和 0. 示例 1: 输入: a = &qu ...

  6. (网页)html中页面传递参数不用cookie不用缓存,js方法搞定

    function GetQueryString(name) { var reg = new RegExp("(^|&)" + name + "=([^&] ...

  7. JHipster生成微服务架构的应用栈(三)- 业务微服务示例

    本系列文章演示如何用JHipster生成一个微服务架构风格的应用栈. 环境需求:安装好JHipster开发环境的CentOS 7.4(参考这里) 应用栈名称:appstack 认证微服务: uaa 业 ...

  8. The concurrent snapshot for publication 'xxx' is not available because it has not been fully generated or the Log Reader Agent is not running to activate it

    在两台测试服务器部署了复制(发布订阅)后,发现订阅的表一直没有同步过来.重新生成过snapshot ,也重新初始化过订阅,都不能同步数据,后面检查Distributor To Subscriber H ...

  9. Win10 - MySQL-zip安装方法

    Win10 - MySQL-zip安装方法 安装步骤 1.下载,到MySQL官网:https://dev.mysql.com/downloads/mysql/ 2.解压安装包 解压下载的安装包,放到你 ...

  10. Python中关于with open file as 的用法

    最近用到python来处理文本文件了,然后需要处理文件.发现python中提供的with   open  as   这个还是用的不错的!好的,废话不多说了,看下例子: with open('./sig ...