网站制作学习网Python→正文:python click 命令行
字体:

python click 命令行

Python 2023/10/9 13:28:21  点击:不统计

http://www.forasp.cn/
 python 中使用click 监听命令行命令以及参数,直接上python click 代码,如下:

代码保存后可以直接运行,相关命令查看注释
# -*- coding:utf-8 -*-
import click


@click.group(chain=True) # 命令总入口; chain=True 标示可以多个命令
# 连续命令:python forasp.py command_name1 command_name2 --name=forasp --count=3
def commands():
print("command start")
pass


@commands.command() # 表示该方法属于@click.group 子命令; 命令: python forasp.py command_name1
@click.option("--name", default="默认名字", help="输入名字", type=str)
def command_name1(name):
"""
command1 Args:
name [str] :[print name]
"""
# 上面是命令注释信息
click.echo("command_name1 hello {}".format(name))


@commands.command() # 命令: python forasp.py command_name2 --name=forasp --count=3
@click.option("--count", default=1, help="打印次数", type=int, required=True) # required标示必须输入该参数
@click.option("--name", default="默认名字", help="输入名字", type=str)
def command_name2(count, name):
for i in range(count):
print("command_name2 hello {}".format(name))


@commands.command()
@click.argument("name") # 直接将命令行后的参数 当作参数;命令: python forasp.py command_name3 forasp.cn
def command_name3(name):
click.echo("command_name3你输入的名字是:" + str(name)) # 这里输出是 click封装 输出


@commands.command()
# 调用输入密码 命令: python forasp.py command_name4
# prompt =True 表示等待用户输入; hide_input =True 标示 不显示用户输入内容; confirmation_prompt 标示二次确认用户内容
@click.option("--password", prompt=True, hide_input=True, confirmation_prompt=True)
def command_name4(password):
click.echo("command_name4你输入的密码是:" + str(password)) # 这里输出是 click封装 输出


@commands.command()
# 固定选项输入 命令: python froasp.py command_name5 --type_str=old
# type=click.Choice标示选项,可以通过 python froasp.py command_name5 --help 查看。
# type 类型很多,int(click.int), str(click.str),float(click.FLOAT),bool(click.BOOL), click.FILE,click.PATH,click.IntRange
@click.option('--type_str', required=True, type=click.Choice(['new', 'old']))
def command_name5(type_str):
click.echo("command_name5你输入的是:" + str(type_str))


@commands.command()
# 多个参数命名,命令 python forasp.py command_name6 --N=forasp
# 比如 --n 和 --name 和--N 都可以用
@click.option("--n", "--N", "--name", required=True, type=str)
# 允许多个输入 python forasp.py command_name6 --N=forasp --ns=forasp2 --NS=forasp3
# ,返回的是 tuple
@click.option("--ns", "--NS", "--names", type=str, multiple=True)
def command_name6(name, names):
click.echo("command_name6输入的是:" + str(name))
click.echo("command_name6输入的是:" + str(names))


@commands.command()
# 询问用户,返回是否 命令 python forasp.py command_name7
# 对于 1、yes、y 和 true 会转化为 True;0、no、n 和 false 会转化为 False
@click.option("--yesorno", required=True, prompt=True, type=click.BOOL)
def command_name7(yesorno):
if yesorno:
click.echo("command_name7输入的是:Yes")
else:
click.echo("command_name7输入的是:No")


if __name__ == '__main__':
commands() # 这里调用命令组

网站http://www.制forasp作.cn

·上一篇:python flask >>    ·下一篇:python __call__ >>
推荐文章
最新文章