Argparse模块入门

简介

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")使用了parseradd_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基础)