Python命令获取用户输入行为模块-argparse
概述
当我们使用命令运行python脚本的时候,一些非固定参数如果需要我们通过命令输入有以下几种方式:
- 使用
sys.argv - 使用
argparse - 使用
fire
本篇文章我们主要介绍argparse 的使用
创建解析器
parse = argparse.ArgumentParser(description='我是来接收用户输入的...')
参数说明
def __init__(self,
prog: str | None = ...,
usage: str | None = ...,
description: str | None = ...,
epilog: str | None = ...,
parents: Sequence[ArgumentParser] = ...,
formatter_class: _FormatterClass = ...,
prefix_chars: str = ...,
fromfile_prefix_chars: str | None = ...,
argument_default: Any = ...,
conflict_handler: str = ...,
add_help: bool = ...,
allow_abbrev: bool = ...,
exit_on_error: bool = ...) -> None
prog : 程序的名称(默认:sys.argv[0]) usage - 描述程序用途的字符串(默认值:从添加到解析器的参数生成)description : 在参数帮助文档之前显示的文本(默认值:无)epilog :在参数帮助文档之后显示的文本(默认值:无)parents : 一个 ArgumentParser 对象的列表,它们的参数也应包含在内formatter_class : 用于自定义帮助文档输出格式的类prefix_chars :可选参数的前缀字符集合(默认值:’-’)fromfile_prefix_chars : 当需要从文件中读取其他参数时,用于标识文件名的前缀字符集合(默认值:None)argument_default :参数的全局默认值(默认值: None)conflict_handler :解决冲突选项的策略(通常是不必要的)add_help :为解析器添加一个 -h/–help 选项(默认值: True)allow_abbrev : 如果缩写是无歧义的,则允许缩写长选项 (默认值:True)
添加参数
parse.add_argument('-e', '--env', default='sit', required=False, help='请输出要打包的环境【sit/uat/prod】')
parse.add_argument('-r', '--remark', nargs='+', default='无', required=False, help='请输出要本次更新内容')
print(parse.parse_args())
用户输入
python argparse_simple.py -e=sit -r 1.network 2.ui
参数介绍
def add_argument(self,
*name_or_flags: str,
action: str | Type[Action] = ...,
nargs: int | str = ...,
const: Any = ...,
default: Any = ...,
type: (str) -> _T | (str) -> _T | FileType = ...,
choices: Iterable[_T] | None = ...,
required: bool = ...,
help: str | None = ...,
metavar: str | Tuple[str, ...] | None = ...,
dest: str | None = ...,
version: str = ...,
**kwargs: Any) -> Action
-
name or flags :一个命名或者一个选项字符串的列表,例如 env 或 -e, --env env 可直接输入命令参数` sit`
-e 需要输入命令名称+命令参数:`-e=sit`
--env 需要输入命令名称+命令参数:`-env=sit`,是`-e`的全拼
-
action :当参数在命令行中出现时使用的动作基本类型。 -
nargs : 命令行参数个数 nargs=2 :表示可接收两个参数,以空格隔开,会输出一个列表(`env sit uat` => `env=[sit,uat]`)
nargs='+' 表示可接收多个参数,以空格隔开
-
const :被一些 action 和 nargs 选择所需求的常数。 -
default : 当参数未在命令行中出现时使用的值。 -
type : 命令行参数应当被转换成的类型。 -
choices : 可用的参数的容器。 -
required : 此命令行选项是否是必填 -
help : 一个此选项作用的简单描述。 -
metavar : 在使用方法消息中使用的参数值示例。 -
dest : 被添加到 parse_args() 所返回对象上的属性名。 其中最常用的可选参数是:default ,type ,help ,nargs 下面我就在之前的test.py的基础上更改一些参数来说明其使用方法 完整示例
import argparse
def simple():
parse = argparse.ArgumentParser(description='我是来接收用户输入的...')
parse.add_argument('-e', '--env', default='sit', required=False, help='请输出要打包的环境【sit/uat/prod】')
parse.add_argument('-r', '--remark', nargs='+', default='无', required=False, help='请输出要本次更新内容')
args = parse.parse_args()
env = args.env
remark = " , ".join(str(i) for i in args.remark)
print(f'env={env},remark={remark}')
print(parse.parse_args())
if __name__ == '__main__':
simple()
|