壹 简介
有时候我们需要像Linux、Windows的shell一样使用命令行操作,而不是使用编译器编译python,这时候我们就可以使用脚本传递命令参数功能。在python中,解析命令行参数的方法有很多种,比如argv、getopt、optparse、argparse等。
- optparse库使用一种更具声明性的命令行解析方式:创建OptionParser的实例,用选项填充它,然后解析命令行。optparse允许用户以常规GNU/POSIX语法指定选项,并为您生成用法和帮助消息,但已被Python3.2、Python2.7弃用。官方文档:链接在此
- getopt的API是来自C语言中的getopt()函数,只能简单处理命令行参数。
- argparse库是基于optparse的,使用方法相似,从sys.argv中解析参数,可编写用户友好的命令行界面,自动生成帮助和使用信息,对于无效参数可产生相应的错误提示。官方文档:链接在此
本文主要讲argparse库的的使用,这是一个标准库,不需要下载。
贰 创建解析器对象ArgumentParser
看到这里不用懵逼,因为这个库主要是用这个对象的,所以从这里开始!
import argparse
parser = argparse.ArgumentParser(description='对该命令的描述')
- prog:程序的名称(默认值:sys.argv[0])
- usage:条用法消息(默认值:根据参数自动生成)
- description:对程序所做操作的描述(默认值:none)
- epilog:参数描述后面的文本(默认值:none)
- parents:应该将其参数复制到这个解析器中的解析器
- formatter_class:用于打印帮助消息的HelpFormatter类
- prefix_chars:作为可选参数前缀的字符,(默认值:’-’)
- fromfile_prefix_chars:作为文件前缀的字符集,应从中读取附加参数(默认值:none)
附加参数: - argument_default:为参数的全局默认值(默认值:none)
- conflict_handler:指示如何处理冲突的字符串(通常是不必要的)
- add_help:添加-h/-help选项(默认是True)
- allow_abbrev:如果缩写是明确的,则允许缩写长选项,在版本3.5中增加的(默认值是True)
- exit_on_error:确定发生错误时ArgumentParser是否以错误信息退出,在版本3.9中增加的(默认是True)
叁 add_argument()方法
add_argument()方法是用来指定程序需要接受的命令参数,参数可以分为定位参数和可选参数两种,这个函数根据参数多少来定义。
1、定位参数
默认是必需的,可以类比函数中不带默认值的参数,因此调用时按顺序读入的参数与设置好的定位参数一一对应,不需要添加“-”来指示参数名称,就是说必须加在命令后面的参数。
import argparse
parser = argparse.ArgumentParser(