【python】命令行参数argparse用法详解
阅读大概需要7分钟
跟随小博主,每天进步一丢丢
作者 yarving
链接 https://www.jianshu.com/p/fef2d215b91d
小编:
今天开始写比赛的代码,为了写的更加正规一些,这次就用了argparse。
大体用途就是通过命令行向程序传入参数。
基本用法
prog.py是我在linux下测试argparse的文件,放在/tmp目录下,其内容如下:
测试:
第一个没有任何输出和出错
第二个测试为打印帮助信息,argparse会自动生成帮助文档
第三个测试为未定义的-v参数,会出错
第四个测试为未定义的参数foo,出错
positional arguments
positional arguments为英文定义,中文名叫有翻译为定位参数的,用法是不用带-就可用,修改prog.py的内容如下:
执行测试如下:
定义了一个叫echo
的参数,默认必选
第一个测试为不带参数,由于
echo
参数为空,所以报错,并给出用法(usage)和错误信息第二个测试为打印帮助信息
第三个测试为正常用法,回显了输入字符串hahahaha
optional arguments
中文名叫可选参数,有两种方式:
一种是通过一个
-
来指定的短参数,如-h
;一种是通过
--
来指定的长参数,如--help
这两种方式可以同存,也可以只存在一个,修改prog.py内容如下:
注意这一行:parser.add_argument("-v", "--verbosity", help="increase output verbosity")
定义了可选参数-v
或--verbosity
,通过解析后,其值保存在args.verbosity
变量中
用法如下:
测试1中,通过
-v
来指定参数值测试2中,通过
--verbosity
来指定参数值测试3中,通过
-h
来打印帮助信息测试4中,没有给
-v
指定参数值,所以会报错
action='store-true'
上一个用法中-v必须指定参数值,否则就会报错,有没有像-h
那样,不需要指定参数值的呢,答案是有,通过定义参数时指定action="store_true"
即可,用法如下:
测试:
第一个例子中,-v
没有指定任何参数也可,其实存的是True
和False
,如果出现,则其值为True
,否则为False
类型type
默认的参数类型为str,如果要进行数学计算,需要对参数进行解析后进行类型转换,如果不能转换则需要报错,这样比较麻烦
argparse提供了对参数类型的解析,如果类型不符合,则直接报错。如下是对参数进行平方计算的程序:
测试:
第一个测试为计算2的平方数,类型为int,正常
第二个测试为一个非int数,报错
第三个为打印帮助信息
可选值choices=[]
上述action的例子中定义了默认值为True
和False
的方式,如果要限定某个值的取值范围,比如6中的整形,限定其取值范围为0, 1, 2,该如何进行呢?
修改prog.py文件如下:
测试如下:
测试1, 2, 3 为可选值范围,通过其值,打印不同的格式输出;
测试4的verbosity值不在可选值范围内,打印错误
测试5打印帮助信息
自定义帮助信息help
上面很多例子中都为help赋值,如
在打印输出时,会有如下内容:
也就是help为什么,打印输出时,就会显示什么
程序用法帮助
上面介绍了为每个参数定义帮助文档,那么给整个程序定义帮助文档该怎么进行呢?通过即可
修改prog.py内容如下:
打印帮助信息时即显示calculate X to the power of Y
互斥参数
在上个例子中介绍了互斥的参数
第一行定义了一个互斥组,第二、三行在互斥组中添加了-v
和-q
两个参数,用上个例子中的程序进行如下测试:
可以看出,-q
和-v
不出现,或仅出现一个都可以,同时出现就会报错。
可定义多个互斥组
默认参数default
介绍了这么多,有没有参数默认值该如何定义呢?
修改prog.py内容如下:
测试结果如下:
可以看到如果不指定-v
的值,args.verbosity
的值默认为1,为了更清楚的看到默认值,也可以直接打印进行测试。
IELTS a bit
jealous adj. 妒忌的;猜疑的;唯恐失去的;戒备的
quibble n. 谬论;双关语;遁词
vi. 诡辩;挑剔;模棱两可的话
vt. 对...诡辩
warn sb. of 警告某人
roaring adj. 喧闹的;兴胜的;狂风暴雨的
n. 咆哮;怒吼;吼声
v. 怒吼
apprehensive adj. 忧虑的;不安的;敏悟的;知晓的
推荐阅读:
精彩知识回顾
【珍藏版】长文详解python正则表达式
这些神经网络调参细节,你都了解了吗
谈谈我在自然语言处理入门的一些个人拙见
大数定律和中心极限定理的区别和联系
深度学习之激活函数详解
深度学习之卷积神经网络CNN理论与实践详解
深度学习之RNN、LSTM及正向反向传播原理
TreeLSTM Sentiment Classification
基于attention的seq2seq机器翻译实践详解
【干货】基于注意力机制的seq2seq网络
欢迎关注深度学习自然语言处理公众号,我会每天更新自己在机器学习,深度学习,NLP,linux,python以及各种数学知识学习的一点一滴!再小的人也有自己的品牌!期待和你一起进步!
长按识别二维码
点个赞呗
【python】命令行参数argparse用法详解相关推荐
- python 命令行参数 argparse用法总结
目录 一.使用到的具体函数 二.程序用法说明 三.位置参数 positional arguments 四.可选参数 optional arguments 五.类型 六.可选值 七.互斥参数 八.参数默 ...
- linux cp -r 参数,Linux系统中cp命令的参数及用法详解
Linux系统中cp命令主要是用来复制文件或者目录.下面由学习啦小编为大家整理了Linux系统中cp命令的参数及用法详解的相关知识,希望对大家有帮助! Linux系统中cp命令的参数及用法详解:参数说 ...
- python getopt argparse_python OptParse模块和argparse命令行解析的用法详解
https://www.cnblogs.com/wj-1314/p/8974021.html OptParse模块的简单介绍 Python 有两个内建的模块用于处理命令行参数: 一个是 getopt只 ...
- python命令行大全-用什么库写 Python 命令行程序(示例代码详解)
一.前言 在近半年的 Python 命令行旅程中,我们依次学习了 argparse . docopt . click 和 fire 库的特点和用法,逐步了解到 Python 命令行库的设计哲学与演变. ...
- python 命令行参数—argparse模块的使用
简单示例 我们先来看一个简单示例.主要有三个步骤: 创建 ArgumentParser() 对象 调用 add_argument() 方法添加参数 使用 parse_args() 解析添加的参数 .示 ...
- python 代码命令大全-用什么库写 Python 命令行程序(示例代码详解)
一.前言 在近半年的 Python 命令行旅程中,我们依次学习了 argparse . docopt . click 和 fire 库的特点和用法,逐步了解到 Python 命令行库的设计哲学与演变. ...
- c语言中命令行参数argc,argv[]详解
argc 是 argument count的缩写,表示传入main函数的参数个数: argv 是 argument vector的缩写,表示传入main函数的参数序列或指针,并且第一个参数argv[0 ...
- Python 命令行参数详解
Python 命令行参数详解 0. 命令行参数 1. sys.argv 2. getopt 2.1 getopt.getopt 方法 2.2 Exception getopt.GetoptError ...
- 【Python】Python3.7.3 - Python命令行参数详解
文章目录 Python命令行参数概览 -c cmd参数示例 -m mod参数示例 file参数示例 - 参数示例 命令行选项详解 -b 选项 -B选项 -d选项 -E选项 -h / -? / --he ...
- Python 命令行参数:Argparse 与 Click
Python 命令行参数:Argparse 与 Click 简介 一.Argparse 模块 1.1 概念 1.2 基础 1.3 位置参数介绍 1.4 可选参数介绍 1.5 短选项 1.6 结合位置参 ...
最新文章
- 火热的激情、严密的计划成就双冠梦想——我的项管经验(转载)
- Android 设定横屏,禁止屏幕旋转,Activity重置 [更新视频播放器相关]
- 【转载】C#中List集合使用Exists方法判断是否存在符合条件的元素对象
- 【kafka】Kafka 2.0 ConsumerGroupCommand新功能
- 最全的spark基础知识解答
- 怎样固定计算机画图曲线,如何在电脑上画出固定长度的线段
- WCDMA功率控制与BER/BLER
- python爬虫案例-爬取西刺免费代理服务器IP等信息
- 各版本音标 IPA DJ KK 音标对照表
- View事件分发相关结论的源码解析
- php上证指数抽奖代码,上证指数etf基金代码,场内etf基金一览表
- excel软件做折线图
- R语言使用survival包的Surv函数创建生存对象、建立Cox回归模型(包含所有协变量)比较不同治疗方法生存率的差异、使用step函数基于AIC指标进行逐步回归法cox模型特征筛选(变量筛选)
- foobar2000在线标签服务器,在Foobar2000播放器中从音乐名获取标签的技巧
- 今日分享:自用的2款markdown在线编辑器推荐给你,快码住
- 一个demo理解什么是MVP
- 【聚英云农】无线节水灌溉系统应用智慧农业
- 如何在谷歌浏览器内设置http代理?
- 神马? 网飞(Netflix)程序员的基本薪资居然是谷歌的2倍多...
- Node.js stream模块(三)背压机制