该文以Python 2为基础。

1. argparse简介

argparse使得编写用户友好的命令行接口更简单。

argparse知道如何解析sys.argv。

argparse 模块自动生成 “帮助” 信息和 “使用” 信息。

当用户使用了错误的参数,argparse则报错。

2. argparse的使用

A) 使用argparse的第一步需要 创建ArgumentParser对象。

ArgumentParser对象将持有所有的解析命令的必要信息。

B) add_argument() 添加 关于程序参数的信息。

C) ArgumentParser对象使用 方法parse_args() 来解析参数。该方法检查命令行,将每个参数转换为

合适的类型,然后调用合适的Action。

3. ArgumentParser对象

创建新的ArgumentParser对象,所有的参数应该以 keyword arguments 进行传参。

 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)

prog: The name of the program (程序的名字)

usage: 描述如何使用程序。

description: 在 程序帮助 前面显示的文本。(默认:None)

epilog:

parents:

formatter_class:

prefix_chars:

fromfile_prefix_chars:

argument_default:

conflict_handler:

add_help:

4. add_argument() 方法

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

5. Demo: ArgParseDemo.py

 from __future__ import print_function
import argparse def main():
parser = argparse.ArgumentParser()
parser.add_argument('bar', nargs='?')
parser.add_argument('foo', nargs='?')
args = parser.parse_args()
print("foo: %s" % args.foo)
print("bar: %s" % args.bar) if __name__ == '__main__':
main()

运行该脚本如下:

$ python ArgParseDemo.py ooo pp

foo: pp

bar: ooo


Reference

1. https://docs.python.org/2/library/argparse.html

XiaoKL学Python(D)argparse的更多相关文章

  1. XiaoKL学Python(E)Generator Expressions

    在 阅读 https://github.com/vitonzhang/objc_dep 中的 objc_dep.py 时遇到: objc_files = (f for f in files if f. ...

  2. XiaoKL学Python(C)__future__

    __future__ in Python 1. from __future__ import xxxx 这是为了在低版本的python中使用可能在某个高版本python中成为语言标准的特性,从而 在将 ...

  3. 2000字谏言,给那些想学Python的人,建议收藏后细看!

    1. 这几天陆续收到很多读者.球友的留言.私信,说要怎么学Python?有没有基础的,偏小白的学习方法?我的回答是:等我统一答复. 小胖从不食言,今天就来说说我觉得一个零基础.想转行.一直不得法的人应 ...

  4. 【Python五篇慢慢弹】快速上手学python

    快速上手学python 作者:白宁超 2016年10月4日19:59:39 摘要:python语言俨然不算新技术,七八年前甚至更早已有很多人研习,只是没有现在流行罢了.之所以当下如此盛行,我想肯定是多 ...

  5. <-0基础学python.第一课->

    初衷:我电脑里面的歌曲很久没换了,我想听一下新的歌曲,把他们下载下来听,比如某个榜单的,但是一首一首的点击下载另存为真的很恶心 所以我想有没有办法通过程序的方式来实现,结果还真的有,而且网上已经有有人 ...

  6. 学Python后到底能干什么?

    Python是一种什么语言? Python是一种计算机程序设计语言.你可能已经听说过很多种流行的编程语言,比如非常难学的C语言,非常流行的Java语言,适合初学者的Basic语言,适合网页编程的Jav ...

  7. 关于智普 - 千人免费学|Python培训|国内最权威python培训|html5

    关于智普 - 千人免费学|Python培训|国内最权威python培训|html5 智普教育隶属于北京顶嵌开源科技有限公司,成立于2008年. 智普开源是基于Linux系统的互联网开源学习平台,讲求务 ...

  8. [置顶] 和孩子们一起学Python编程

    1. 推荐书名 Computer Programming for Kids and Other Beginners in Python, 4Ed.pdf     中文译名:<和孩子们一起学Pyt ...

  9. 简学Python第二章__巧学数据结构文件操作

    #cnblogs_post_body h2 { background: linear-gradient(to bottom, #18c0ff 0%,#0c7eff 100%); color: #fff ...

随机推荐

  1. thymeleaf 的标准表达式

                                              

  2. CodeForces-1132C-Painting the Fence-(前缀和)

    You have a long fence which consists of nn sections. Unfortunately, it is not painted, so you decide ...

  3. 解决SMARTFORMS文本编辑器不能打开

    在DEV打开SMARTFORMS文本编辑器时,出现如下错误 由于宏安全设置,无法找到宏或宏被禁用. 解决方法如下: 在DEV环境新建程序后输入如下代码执行即可. *&------------- ...

  4. MyBatis数据库连接的基本使用-补充Mapper映射器

    补充 Mapper映射器的使用: Mapper映射器,google添加.Mapper映射器是将mapper.xml中配置的sql id,parameterType和resultMap按照规则一一映射到 ...

  5. 从源码安装Node

    [从源码安装Node] Nodejs官网未并提供i686架构的bin,为了在i686架构cpu下使用Nodejs,需要从源码编译. 1../configure 2.make 3.make instal ...

  6. Spring整合EHCache框架

    在Spring中使用缓存可以有效地避免不断地获取相同数据,重复地访问数据库,导致程序性能恶化. 在Spring中已经定义了缓存的CacheManager和Cache接口,只需要实例化便可使用. Spr ...

  7. vue.js 三种方式安装(转)

    https://blog.csdn.net/m0_37479246/article/details/78836686

  8. Adapter类 调用Activity中的函数

    在Adapter类中可以定义一个MainActivity变量,在初始化时,对其赋值,例如fragment的适配器中: private MainActivity context; private Lis ...

  9. JS函数入门

    一. 函数的声明及调用 * 1函数的格式:function 函数名(参数1,参数2......){ * //函数体 * return 结果: * * } * 函数调用的格式: * 直接调用:函数名(参 ...

  10. 【python】入门指南1

    基础的数据结构:int, float, string 注意:python入门系列的文章的示例均使用python3来完成. #!/bin/python a = 1 b = 1.0 c = 'string ...