简介
Argparse是标准库提供的命令行解析模块,它基于废弃模块optparse,类似模块还有getopt,对应C语言中的getopt函数。
相关概念
linux用户应该对以下4个命令不陌生,这4个命令说明了ls命令4种参数用法。
ls
ls python
ls -l
ls --help
第一个命令不带参数
第二个命令中的python是位置参数,命令如何处理位置参数完全取决于参数所处的位置,类似的如cp命令基本用法中的第一个参数和第二个参数。
第三个命令中的-l是可选参数
第四个命令中的--help参数是默认的可选的帮助参数
基本用法
程序1:argparse _usage.py
import argparse #导入argparse
parser = argparse.ArgumentParser() #初始化解析器
parser.parse_args() #解析命令行
上述代码运行后只能使用--help参数或者它的缩写-h,即--hep参数是默认添加的。
$ py -3 argparse _usage.py
$ py- 3 argparse _usage.py --help
usage: argparse _usage.py [-h]
optional arguments:
-h, --help show this help message and exit
进阶用法1:添加位置参数
程序2:argparse _usage.py
import argparse
parser = argparse.ArgumentParser()
parser.add_argument("echo")
args = parser.parse_args()
print(args.echo)
相比于程序1:
parser.add_argument("echo")使用了parser的add_argument()方法,这是argparse模块用于定义接受那些命令行参数(选项)的方法。该方法使用参数echo,表明echo为位置参数。
parser.parse_args()的返回值为命令行中输入的参数数据,数据结构为Namespace,可以理解为类似字典结构的键值对,即属性:属性值,访问属性(键)时可以使用object.attribute式的语法。在argparse模块定义中包含Namespace类的定义。类似 Namespace的对象可以使用内置函数vars()转换为字典。
$ py -3 argparse _usage.py
usage: argparse _usage.py [-h] echo
argparse _usage.py: error: the following arguments are required: echo
$ py -3 argparse _usage.py --help
usage: argparse _usage.py [-h] echo
positional arguments:
echo
optional arguments:
-h, --help show this help message and exit
$ py -3 argparse _usage.py foo
foo
本文深入讲解Python标准库中的Argparse模块,介绍其基本用法及如何定义和解析命令行参数,包括位置参数和可选参数。
545

被折叠的 条评论
为什么被折叠?



