『Argparse』命令行解析

Posted 叠加态的猫

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了『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』命令行解析的主要内容,如果未能解决你的问题,请参考以下文章

『Argparse』命令行解析

python命令行解析模块--argparse

python中的argparse包——用于解析命令行参数

python argparse模块解析命令行选项简单使用

python:argparse命令行解析模块详解

Argparse 命令行解析模块常用参数