【计算机编程语言-Python3】命令行输入参数的高级玩法-click模块
【计算机编程语言-Python3】命令行输入参数的高级玩法-click模块
·
文章目录
1、click模块介绍
Click 是一个用于创建命令行界面的 Python 包。它易于使用且功能强大。
它支持参数解析、子命令、自动帮助文档生成等功能,可以让您快速构建一个易用又好看的命令行工具。
2、安装和使用
# 在终端中输入以下命令即可安装Click模块:【二选一】
pip3 install click
python3 -m pip install click
# 引入Click模块:
import click
3、click的输入输出介绍
1. click.echo()
该命令用于在命令行中输出一行文本。格式如下:
# text:需要输出的文本
# file:将输出的文本重定向到指定文件
# nl:末尾是否添加newline
# err:是否将文本重定向到错误输出
# color:输出文本的颜色
# styles:设置输出文本的样式
click.echo(text=None, file=None, nl=True, err=False, color=None, **styles)
2. click.confirm()
该命令用于在命令行中输出一段文本,并等待用户输入yes或no进行确认。格式如下:
# text:需要询问的文本
# default:默认结果是False还是True
# abort:如果用户不同意,是否终止程序
# prompt_suffix:在文本后面添加的提示符
click.confirm(text, default=False, abort=False, prompt_suffix=': ')
3. click.prompt()
该命令用于在命令行中输入一段文本。格式如下:
# text:需要输入的文本
# default:如果用户不输入内容,使用的默认值
# hide_input:输入内容时是否隐藏用户的输入
# confirmation_prompt:是否需要二次确认
# type:输入内容的数据类型
# value_proc:输入内容的处理函数
# prompt_suffix:在文本后面添加的提示符
click.prompt(text, default=None, hide_input=False, confirmation_prompt=False, type=None, value_proc=None, prompt_suffix=': ')
4、简单使用
1. 代码实例:
1·通过定义命令行函数来实现解析命令行参数和子命令的功能。
2·使用装饰器@click.command定义命令行函数
3·并使用@click.option处理命令行参数
4·使用click.echo打印输出
import click
@click.command()
@click.option('-n', '--name', required=True, prompt='请输入姓名', help='输入你的姓名')
@click.option('-a', '--age', type=int, default=18, show_default=True, prompt='请输入年龄', help='输入你的年龄')
@click.option('-g', '--gender', type=click.Choice(['M', 'F']), prompt='请选择性别', help='输入你的性别')
@click.option('--student', is_flag=True, help='表示是学生')
def echo_action(name, age, gender, student):
click.echo(f'姓名:{name},今年:{age}岁,性别:{gender},是否是学生:{student}')
echo_action()
2. 脚本执行方式及情况:
# 获取帮助信息
python a.py --help
----------------------------------------------------
Usage: a.py [OPTIONS]
Options:
-n, --name TEXT 输入你的姓名 [required]
-a, --age INTEGER 输入你的年龄 [default: 18]
-g, --gender [M|F] 输入你的性别
--student 表示是学生
--help Show this message and exit.
# 填写完整参数
python a.py -n leon --age=15 --gender F --student
----------------------------------------------------
姓名:leon,今年:15岁,性别:F,是否是学生:True
# 填写局部参数
python a.py -n leon
----------------------------------------------------
请输入年龄 [18]:
请选择性别 (M, F): F
姓名:leon,今年:18岁,性别:F,是否是学生:False
3. 代码解释-@click.option():
# required=True :表示该选项必填
# default=None :表示默认值
# show_default=True :在--help获取帮助信息的时候,显示默认值
# prompt='请输入年龄' :表示如果未填该选项,会在命令行有提示,需要用户回车确认;如果有有默认值,也会一块显示,例如 请输入年龄 [18]:
# type=int :该选项的数据类型 int、str
# type=click.Choice(['M', 'F']) :该选项的数据类型是一个选择
# is_flag=True :该选项将被解释为一个布尔值,而不是带有值的选项
# help='输入你的姓名' :该选项的帮助信息
@click.option('-n', '--name', required=True, prompt='请输入姓名', help='输入你的姓名')
@click.option('-a', '--age', type=int, default=18, show_default=True, prompt='请输入年龄', help='输入你的年龄')
@click.option('-g', '--gender', type=click.Choice(['M', 'F']), prompt='请选择性别', help='输入你的性别')
@click.option('--student', is_flag=True, help='表示是学生')
5、创建组的形式
1. 代码实例:
# 【创建组的形式】
# 所谓的创建组,就是通过一个主入口函数,去关联其他的函数,然后其他的函数名可以作为命令直接使用。
# 这个主入口函数创建完成后,接下来我们开始创建组成员,所谓的组成员就是一个函数
@click.group()
def echo_cli():
pass
# 【组成员】
# 这个组成员的作用和它的函数名是一样的就是查询信息。
# 这里需要注意的是组成员的装饰器由原来的@click.command变为了@echo_cli.command
# echo_cli 就是上面 echo_cli 函数。然后同样下面的 option 是声明一些参数。
@echo_cli.command
@click.option('-n', '--name', required=True, prompt='请输入姓名', help='输入你的姓名')
@click.option('-a', '--age', type=int, default=18, show_default=True, prompt='请输入年龄', help='输入你的年龄')
@click.option('-g', '--gender', type=click.Choice(['M', 'F']), prompt='请选择性别', help='输入你的性别')
@click.option('--student', is_flag=True, help='表示是学生')
def echo_action(name, age, gender, student):
"""显示信息"""
click.echo(f'姓名:{name},今年:{age}岁,性别:{gender},是否是学生:{student}')
echo_cli()
2. 脚本执行方式及情况:
# 获取总的帮助信息
python a.py --help
----------------------------------------------------
Usage: a.py [OPTIONS] COMMAND [ARGS]...
Options:
--help Show this message and exit.
Commands:
echo-action 显示信息
# 获取具体选项的帮助信息
python a.py echo-action --help
----------------------------------------------------
Usage: a.py echo-action [OPTIONS]
Options:
-n, --name TEXT 输入你的姓名 [required]
-a, --age INTEGER 输入你的年龄 [default: 18]
-g, --gender [M|F] 输入你的性别
--student 表示是学生
--help Show this message and exit.
# 填写完整参数
python a.py echo-action -n leon --age=15 --gender F --student
----------------------------------------------------
姓名:leon,今年:15岁,性别:F,是否是学生:True
# 填写局部参数
python a.py echo-action -n leon
----------------------------------------------------
请输入年龄 [18]:
请选择性别 (M, F): F
姓名:leon,今年:18岁,性别:F,是否是学生:False

GitCode 天启AI是一款由 GitCode 团队打造的智能助手,基于先进的LLM(大语言模型)与多智能体 Agent 技术构建,致力于为用户提供高效、智能、多模态的创作与开发支持。它不仅支持自然语言对话,还具备处理文件、生成 PPT、撰写分析报告、开发 Web 应用等多项能力,真正做到“一句话,让 Al帮你完成复杂任务”。
更多推荐
所有评论(0)