『Argparse』命令行解析
一、基本用法
Python标准库推荐使用的命令行解析模块argparse
还有其他两个模块实现这一功能,getopt(等同于C语言中的getopt())和弃用的optparse。因为argparse是基于optparse,所以用法很类似。
import argparse
parser = argparse.ArgumentParser()
parser.add_argument("-v", "--verbose", help="increase output verbosity",
action="store_true",type=str)
args = parser.parse_args()
if args.verbose:
print "verbosity turned on"
运行如下,
$ python prog.py -v
verbosity turned on
$ python prog.py --help
usage: prog.py [-h] [-v] optional arguments:
-h, --help show this help message and exit
-v, --verbose increase output verbosity
注意帮助信息也有相应的变化。
二、参数介绍
1.解析器创建
解析器创建的同时可以为解析器添加程序说明,运行 python 文件 时即可显示,
可以自行对比各个参数和截图的位置理解一下参数意义
import argparse parser = argparse.ArgumentParser(prog="demo_for_argparse",
description = "A demo program",
epilog = "The end of usage")
parser.print_help()

2.添加待解析参数
parser.add_argument("name")
parser.add_argument('-a', '--age', type=int, required=True)
parser.add_argument("-s", "--status", choices=['alpha', 'beta', 'released'], type=str, dest='myStatue')
parser.add_argument("-v", "--version", action='version', version='%(prog)s 1.0') # version为action的可选参数,打印版本信息
parser.print_help()
| 参数名称 | 功能 |
| name or flags | 名称或标记 |
| action | 解析后触发指定操作,需要后续 参数 |
| nargs | 待解析参数数目 |
| const | actions和nargs可能用到的值 |
| default | 默认值 |
| type | 解析后参数保存类型 |
| choices | 参数的可选值 |
| required | 是否必须提供,默认False |
| help | 参数说明 |
| dest | 解析后保存的对象名称 |

3.解析参数
args = parser.parse_args()
print(args)
parse_args会检查输入参数是否正确,发现错误会报错且给出正确的用法,解析后的args.属性名即可调用,但是,属性名是全称,缩写不可以
args, unparsed = parser.parse_known_args()
print("{},{}".format(args, unparsed))
print(args.age)
这种解析方式接收到意外的参数键值时不会报错,会以list形式存储到unparsed中:

『Argparse』命令行解析的更多相关文章
- 『TensorFlow』命令行参数解析
argparse很强大,但是我们未必需要使用这么繁杂的东西,TensorFlow自己封装了一个简化版本的解析方式,实际上是对argparse的封装 脚本化调用tensorflow的标准范式: impo ...
- Python命令行解析argparse常用语法使用简介
查看原文:http://www.sijitao.net/2000.html python中的命令行解析最简单最原始的方法是使用sys.argv来实现,更高级的可以使用argparse这个模块.argp ...
- python命令行解析工具argparse模块【1】
argpaser是python中很好用的一个命令行解析模块,使用它我们可以很方便的创建用户友好型命令行程序.而且argparse会自动生成帮助信息和错误信息. 一.示例 例如下面的例子,从命令行中获取 ...
- python实现命令行解析的argparse的使用
参考https://docs.python.org/3.6/library/argparse.html argparse模块使编写用户友好的命令行界面变得很容易.程序定义了它需要什么参数,argpar ...
- python命令行解析模块--argparse
python命令行解析模块--argparse 目录 简介 详解ArgumentParser方法 详解add_argument方法 参考文档: https://www.jianshu.com/p/aa ...
- Python 命令行解析工具 Argparse介绍
最近在研究pathon的命令行解析工具,argparse,它是Python标准库中推荐使用的编写命令行程序的工具. 以前老是做UI程序,今天试了下命令行程序,感觉相当好,不用再花大把时间去研究界面问题 ...
- python之命令行解析工具argparse
以前写python的时候都会自己在文件开头写一个usgae函数,用来加上各种注释,给用这个脚本的人提供帮助文档. 今天才知道原来python已经有一个自带的命令行解析工具argparse,用了一下,效 ...
- python argparse:命令行参数解析详解
简介 本文介绍的是argparse模块的基本使用方法,尤其详细介绍add_argument内建方法各个参数的使用及其效果. 本文翻译自argparse的官方说明,并加上一些笔者的理解 import a ...
- argparse:命令行参数解析详解
简介# 本文介绍的是argparse模块的基本使用方法,尤其详细介绍add_argument内建方法各个参数的使用及其效果. 本文翻译自argparse的官方说明,并加上一些笔者的理解 Copy im ...
随机推荐
- Windows 10 更改系统文字大小
一. Win + R 进入Regedit: 二. 定位到下图的位置: 三. 选中一个项目,右键,选中修改二进制,打开后如下图: 四. 1.这里,0000一行中的第一位,对应了图形界面设置中的字体大小. ...
- CSS弹性盒布局(display:flex)
CSS弹性布局(display:flex) 参考: http://www.runoob.com/w3cnote/flex-grammar.html https://www.jianshu.com/p/ ...
- 万能的DBHelper帮助类
DBHelper类: 简单的理解就是一个工具箱,我要用锤子的时候就在里面拿,我要用剪刀的时候也可以在里面拿,前提是我们写的DBHelper够不够强大! 软件中的四大功能:增.删.改.查 我们要实现这 ...
- 家庭记账本之微信小程序(六)
Wxss的学习 WXSS(WeiXin Style Sheets)是一套样式语言,用于描述WXML的组件样式. WXSS用来决定WXML的组件应该怎么显示. 为了适应广大的前端开发者,我们的WXSS具 ...
- C#-----中使用using详解
1.using指令 using + 命名空间名字 例:using System; using System.Data; 2.using语句 定义一个范围,在范围结束时处理对象,出了这个范 ...
- 校验input 修改当前值的校验获取值方式
<input style="height: 18px; width: 90px;" name="nowQty" value="${ad.nowQ ...
- .NetCore实现简单的分布式缓存
分布式缓存能够处理大量的动态数据,因此比较适合应用在Web 2.0时代中的社交网站等需要由用户生成内容的场景.从本地缓存扩展到分布式缓存后,关注重点从CPU.内存.缓存之间的数据传输速度差异也扩展到了 ...
- Kubernetes代码解读-apiserver之list-watch
list-watch,作为k8s系统中统一的异步消息传递方式,对系统的性能.数据一致性起到关键性的作用.今天我想从代码这边探究一下list-watch的实现方式.并看是否能在后面的工作中优化这个过程. ...
- 在HTML5的 input:file 上传文件类型控制 遇到的问题
1.input:file 属性的介绍 先瞅代码吧 <form> <input type="file" name="pic" accept=& ...
- shift键有什么用?怎么用?shift键的妙用
一.当你用QQ和别人聊天时,是不是有时信息发送的特别慢呀,不要紧,只要你发信息时按shift 键信息就会很快的发送出去的! 二.当你面对一大堆窗口,却要一个一个把它们关掉时.是不是很烦啊.只要你按sh ...