『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 ...
随机推荐
- 目标检测(六)YOLOv2__YOLO9000: Better, Faster, Stronger
项目链接 Abstract 在该论文中,作者首先介绍了对YOLOv1检测系统的各种改进措施.改进后得到的模型被称为YOLOv2,它使用了一种新颖的多尺度训练方法,使得模型可以在不同尺寸的输入上运行,并 ...
- 1、js比较日期的大小
① html <div class="ptb10"><span>共享开始时间:</span><input type="text& ...
- 15.2-uC/OS-III资源管理(信号量)
1.信号量 信号量是一个“ 锁定机构”,代码需要获得钥匙才可以访问共享资源.占用该资源的任务不再使用该资源并释放资源时,其它任务才能够访问这个资源. 通常有两种类型的信号量:二值信号量和多值信号量. ...
- 一个少女心满满的例子带你入门canvas
https://blog.csdn.net/sunshine940326/article/details/76572850 本文首发于我的个人博客:http://cherryblog.site/ gi ...
- HttpWebRequest请求http1.1的chunked的解析问题记录
问题:我的请求获取不到URL对应的内容(换个浏览器可以). 第一步对比wirshark截包看HTTP请求头,发现我这缺失一部分请求头. 对着官方文档添加即可.https://msdn.microsof ...
- Python RabbitMQ 权重设置
消费端recv设置 注:设置消费端处理完一条消息后再发另一条 channel.basic_qos(prefetch_count=1) 由于每一条机器的处理速度不同,所以我们这里就会对应,机 ...
- 03:open-falcon报警定制
1.1 配置报警 11111111111111111111
- Android一个工程引用另一个工程的方法
一个工程包含另一个工程.相当于一个jar包的引用.但又不是jar包反而像个package 现在已经有了一个Android工程A.我们想扩展A的功能,但是不想在A的基础上做开发,于是新建了另外一个And ...
- vue_elementUI_ tree树形控件 获取选中的父节点ID
el-tree 的 this.$refs.tree.getCheckedKeys() 只可以获取选中的id 无法获取选中的父节点ID想要获取选中父节点的id;需要如下操作1. 找到工程下的node_m ...
- MapReduce编程:平均成绩
问题描述 现在有三个文件分别代表学生的各科成绩,编程求各位同学的平均成绩. 编程思想 map函数将姓名作为key,成绩作为value输出,reduce根据key ...