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

  注意:还有两个模块与Argparse功能相似,getopt和optparse。 argparse基于optparse,因此在使用方面非常相似,但是不推荐使用optparse,官方文档更推荐argparse

1.Argparse的作用

举一个小例子,在Linux系统中,我们常用到 ls 这个命令,默认情况下 ls 会显示当前目录的所有文件或文件夹名称,但是当我们想要获得更多信息,如文件的权限、建立时间等,就需要在 ls 命令后加上 -all 或其他被允许的指令,因此对 ls 这个命令而言,假设我们想改变程序的行为,显示每个文件的更多信息,而不是只显示文件名。 在这种情况下,-all 被称为可选参数。同样的, ls 还具有 -h 这个可以选择的参数,这表示打开帮助文本。 这非常有用,你可以遇到一个你以前从未使用过的程序,并且可以简单地通过阅读帮助文本来弄清楚它是如何工作的。

  Argparse的作用就是为py文件封装好可以选择的参数,使他们更加灵活,丰富。

2.Argparse的基础

  下面介绍argparse的基础调用。把下面的代码写入,保存为prog.py

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

  OK,调用python3,运行一下试试:

$ python3 prog.py
$ python3 prog.py --help
usage: prog.py [-h]
optional arguments:
-h, --help show this help message and exit
$ python3 prog.py --verbose
usage: prog.py [-h]
prog.py: error: unrecognized arguments: --verbose
$ python3 prog.py foo
usage: prog.py [-h]
prog.py: error: unrecognized arguments: foo

  第一个命令直接运行脚本程序,没有任何输出,因为该脚本并没有运行任何选项,源程序也没有设置默认,所以不会有参数传出。第二个命令使用--help参数的时候没有报错,系统给出了结果,那是系统默认的帮助信息。很明显,最后两次使用都报错了,因为该脚本内并没有写入verbose和foo。

2.给Argparse加上参数

  同样的,写上一段python代码,保存为prog.py供之后调用:

 import argparse
parser = argparse.ArgumentParser()
parser.add_argument("echo")
args = parser.parse_args()
print(args.echo)

  运行结果如下:

$ python3 prog.py
usage: prog.py [-h] echo
prog.py: error: the following arguments are required: echo
$ python3 prog.py --help
usage: prog.py [-h] echo positional arguments:
echo optional arguments:
-h, --help show this help message and exit
$ python3 prog.py foo
foo

  添加了add_argument()后,这是我们用来指定程序可以接受的命令行选项。 此时我已经命名 echo (linux中的输出命令),所以当调用时,要求我们指定一个选项。parse_args()方法实际上从指定的选项中返回一些数据,此时是echo。argparse可以直接执行(即不需要指定哪个存储后的变量)。 它的名字和指定的字符串参数 echo 相匹配。

Python的Argparse模块是什么?的更多相关文章

  1. python中argparse模块用法实例详解

    python中argparse模块用法实例详解 这篇文章主要介绍了python中argparse模块用法,以实例形式较为详细的分析了argparse模块解析命令行参数的使用技巧,需要的朋友可以参考下 ...

  2. Python的argparse模块的使用

    Python的argparse模块的使用 最近看到一份Pytorch代码有以下内容: # Training settings parser = argparse.ArgumentParser(desc ...

  3. python中argparse模块简单使用

    python中argparse模块简单使用 简介 argparse是python用于解析命令行参数和选项的标准模块.argparse模块的作用是用于解析命令行参数. 使用步骤 1.首先导入该模块 2. ...

  4. 【python】argparse模块

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

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

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

  6. python的argparse模块

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

  7. python中argparse模块的使用

    有两个文件一个是 文件1:sync_shop_source_bimer.sh 文件2:sync_shop_source_bimer.py 在sync_shop_source_bimer.sh 中调用s ...

  8. Python之argparse模块

    argparse 命令行参数解析模块,原optparse已经停止开发,建议替换为argparse 在python2.7后默认加入 parser ArgumentParser默认解析来源sys.argv ...

  9. python的argparse模块parse_known_args()方法的使用

    parse_known_args()方法的用处就是有些时候,你的选项配置可能不会在一个函数或包中调用完成 在很多使用,我们可能会需要根据一些输入的选项,比如在深度学习中,我们可能会根据传入的模型设置- ...

随机推荐

  1. maven仓库 - nexus配置

    搭建环境: 腾讯云服务器 CentOS 6.8.jdk7.sonatype nexus.maven.Xshell 5 版本信息: jdk : jdk-7u80-linux-x64.tar.gz nex ...

  2. python正则表达式字符记录

    代码 功能 . 匹配任意1个字符(除了\n) [] 匹配[]中列举的字符 \d    匹配数字,即0-9 \D   匹配非数字, 即不是数字 \s 匹配空白,即空格,tab键 \S 匹配非空白 \w ...

  3. Elasticsearch(10) --- 内置分词器、中文分词器

    Elasticsearch(10) --- 内置分词器.中文分词器 这篇博客主要讲:分词器概念.ES内置分词器.ES中文分词器. 一.分词器概念 1.Analysis 和 Analyzer Analy ...

  4. 【linux】【Go】Centos7安装go1.13环境

    前言     Go(又称Golang)是Google开发的一种静态强类型.编译型.并发型,并具有垃圾回收功能的编程语言. 罗伯特·格瑞史莫(Robert Griesemer),罗勃·派克(Rob Pi ...

  5. 夯实Java基础系列4:一文了解final关键字的特性、使用方法,以及实现原理

    目录 final使用 final变量 final修饰基本数据类型变量和引用 final类 final关键字的知识点 final关键字的最佳实践 final的用法 关于空白final final内存分配 ...

  6. 完美激活Pycharm2019.2.3专业版

    完美激活Pycharm2019.2.3专业版 Pycharm官网自9月11更新到pycharm2019.2.2版本后,在短短的2周时间与9月25又带来新版本2019.2.3,不可说更新不快,侧面可以看 ...

  7. Spring Security 梳理 - session

    Spring Security默认的行为是每个登录成功的用户会新建一个Session.这也就是下面的配置的效果: <http create-session="ifRequired&qu ...

  8. mysql5.7初始密码及设置问题

    为了加强安全性,MySQL5.7为root用户随机生成了一个密码,如果安装的是RPM包,则默认是在/var/log/mysqld.log中. 可通过# grep "password" ...

  9. 链表常见的题型(java实现)

    链表是面试中最常见的一种题型,因为他的每个题的代码短,短短的几行代码就可以体现出应聘者的编码能力,所以它也就成为了面试的重点. 链表常见的操作有1.打印链表的公共部分,2.删除链表的倒数第K个节点,3 ...

  10. vertical-align之见

    ertical-align   英文翻译为垂直对齐 ,常用来应用于table 表格中文字的垂直居中:脱离表格后不常用: 有朋友问起:故总结记之: 开局一张图,下来全靠编 这是一个简单的四线表格,小学时 ...