Python的Argparse模块是什么?
近日在阅读代码的过程中遇到了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模块是什么?的更多相关文章
- python中argparse模块用法实例详解
python中argparse模块用法实例详解 这篇文章主要介绍了python中argparse模块用法,以实例形式较为详细的分析了argparse模块解析命令行参数的使用技巧,需要的朋友可以参考下 ...
- Python的argparse模块的使用
Python的argparse模块的使用 最近看到一份Pytorch代码有以下内容: # Training settings parser = argparse.ArgumentParser(desc ...
- python中argparse模块简单使用
python中argparse模块简单使用 简介 argparse是python用于解析命令行参数和选项的标准模块.argparse模块的作用是用于解析命令行参数. 使用步骤 1.首先导入该模块 2. ...
- 【python】argparse模块
来源:http://www.2cto.com/kf/201412/363654.html argparse是python用于解析命令行参数和选项的标准模块,用于代替已经过时的optparse模块.ar ...
- Python的Argparse模块是什么?(未完)
近日在阅读代码的过程中遇到了Argparse模块,记得前段时间已经看了,可是过了两周现在又忘了, 看来写代码一定要钻研到底搞清楚其中原委才行,本文主要参考Python3.6系列官方文档 ...
- python的argparse模块
一.简介: argparse是python用于解析命令行参数和选项的标准模块,用于代替已经过时的optparse模块.argparse模块的作用是用于解析命令行参数,例如python parseTes ...
- python中argparse模块的使用
有两个文件一个是 文件1:sync_shop_source_bimer.sh 文件2:sync_shop_source_bimer.py 在sync_shop_source_bimer.sh 中调用s ...
- Python之argparse模块
argparse 命令行参数解析模块,原optparse已经停止开发,建议替换为argparse 在python2.7后默认加入 parser ArgumentParser默认解析来源sys.argv ...
- python的argparse模块parse_known_args()方法的使用
parse_known_args()方法的用处就是有些时候,你的选项配置可能不会在一个函数或包中调用完成 在很多使用,我们可能会需要根据一些输入的选项,比如在深度学习中,我们可能会根据传入的模型设置- ...
随机推荐
- 【linux】【Python】python2.7安装pip9.0.1
Centos7系统默认自带python2.7,但是没有安装pip. [root@localhost docker-elk]# python -V Python 2.7.5 [root@localhos ...
- 【linux】【elasticsearch】解决docker pull error pulling image configuration: Get https://d2iks1dkcwqcbx.cloudfront.net/
网络原因导致的问题: error pulling image configuration: Get https://d2iks1dkcwqcbx.cloudfront.net/docker/regis ...
- APP稳定性测试
APP稳定性测试-monkey测试 第一篇-App稳定性测试-Monkey(基本操作) 准备工作 1.首先下载好adb工具 2.使用数据线连接电脑,打开usb调试 3.使用win+R打开运行, ...
- 从壹开始学习NetCore 45 ║ 终于解决了事务问题
一.项目说明 哈喽,又来写文章了,原来放假可以这么爽,可以学习和分享,
- Maven报错: Could not resolve archetype org.apache.maven.archetypes:maven-archetype-webapp
郁闷了两天,创建maven项目时,eclipse报错:Could not resolve artifact org.apache.maven.archetypes:maven-archetype-we ...
- 认识MongoDB复制集
从这一篇开始,我们要踏上MongoDB进阶之路啦,想想还有点小开心呢.一筐猪镇楼. 引入复制集 我们先来想一个场景,如果本地项目使用MongoDB,都是下载,安装,连接一条龙服务.这实际也就是 ...
- yum install php-gd 安装php gd库报错Error: php56w-common conflicts with php-common-5.3.3-48.el6_8.x86_64 大
yum install php-gd安装php gd库报错Error: php56w-common conflicts with php-common-5.3.3-48.el6_8.x86_64大概的 ...
- LeetCode正则表达式匹配
题目描述 给你一个字符串 s 和一个字符规律 p,请你来实现一个支持 '.' 和 '*' 的正则表达式匹配. '.' 匹配任意单个字符 '*' 匹配零个或多个前面的那一个元素 所谓匹配,是要涵盖 整个 ...
- Windows10搭建开发环境----MySQL8.0.17安装
Windows10 MySQL8解压版最新最全图文安装配置 一.官网下载解压版安装包 MySQL官网 1. 进入官网点击downloads,如图: 2. 翻到网页底部,点击如图位置: 3. 点击MyS ...
- Flutter 错误捕获的正确姿势
背景 我们知道,在软件开发过程中,错误和异常总是在所难免. 不管是客户端的逻辑错误导致的,还是服务器的数据问题导致的,只要出现了异常,我们都需要一个机制来通知我们去处理. 在 APP 的开发过程中,我 ...