该文以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. 初始C语言中的指针(翁凯男神MOOC)

      运算符  & ● scanf("%d",&i); ●获得变量的地址,它的操作数必须是变量 ● int i; printf("%x",& ...

  2. myEclips 中的项目复制重命名

    现在有个项目Pj ,要复制一个Pu 一,退出 myEclips. 二,找到Pj备份一份到其他目录. 三,进入myEclips,F2修改项目名Pj至Pu. 四,将备份拷贝回原目录. 五,将Pj重新引进m ...

  3. java-学习1

    作为一个想要深入的程序猿,只是学习前端是不够的,我总结我的前端工作是围绕着html.css.js展开写的再好也是展现在表面,所以 我想学习一门能够深入的后台语言,想来想去我还是选择java作为以后深入 ...

  4. scala 下载

    http://downloads.lightbend.com/scala/2.12.3/scala-2.12.3.tgz http://confluence.jetbrains.com/display ...

  5. Java的学习路线图

    在网上看到一个关于Java的学习路线图,个人感觉很详细.https://blog.csdn.net/s1547823103/article/details/79768938

  6. openlayers/// Puppeteer.js

    1.定位;https://viglino.github.io/ol3-ext/examples/map.interaction.geolocationdraw.html 2 .添加Overlay  d ...

  7. Javascript Property Names

    [Javascript Property Names] Property names must be strings. This means that non-string objects canno ...

  8. linux suse 同步时间

    ntpdate 210.72.145.44 ip为中国(国家授时中心)

  9. MySQL实现中文拼音排序

    MySQL下新建一个表,默认采用utf8字符集,中文不能直接按照拼音进行排序. 例如以下语句: SELECT * FROM `tb_fixedassets` order by C_FANAME 得到的 ...

  10. gitlab-ce 安装、汉化与阿里邮箱配置(注意是CE)

    环境准备 yum install curl openssh-server openssh-clients postfix cronie policycoreutils-python –y curl h ...