pip install click
用于将一个函数转换为命令行接口。当使用这个装饰器修饰一个函数时,该函数将被注册为一个可执行的命令,可以通过命令行调用
import click
'''在运行起来的时候没有任何区别'''
@click.command()
def main():
print("执行main方法")
if __name__ == "__main__":
main()
@click.group()
是Python中click包的一个装饰器,用于创建一个命令行组。当使用这个装饰器修饰一个函数时,该函数将作为命令行组的入口点,可以包含其他子命令。通过在命令行中使用组名和子命令名来调用这些子命令。
import click
@click.command()
def fun1():
print("执行fun1方法")
@click.command()
def fun2():
print("执行fun2方法")
@click.group()
def main():
pass
main.add_command(fun1)
main.add_command(fun2)
if __name__ == "__main__":
main()
#运行时:可以通过命令指定运行不同的方法
test_click> python .\demo1.py fun1
执行fun1方法
test_click> python .\demo1.py fun2
执行fun2方法
@click.option()
是Python中click包的一个装饰器,用于为命令行接口添加选项参数。它接受以下参数:
name
(必需):选项的名称,通常以短横线开头,如-f
或--file
。flag
(可选):布尔标志,如果指定,则该选项不需要值。默认为False。required
(可选):布尔值,表示该选项是否必须提供。默认为False。help
(可选):选项的帮助信息,将在命令行中使用--help
时显示。type
(可选):选项的数据类型,例如int、float等。default
(可选):选项的默认值。show_default
(可选):布尔值,表示是否在帮助信息中显示默认值。默认为True。callback
(可选):一个回调函数,当选项被设置时调用。multiple
(可选):布尔值,表示该选项是否可以多次使用。默认为False。expose_value
(可选):布尔值,表示是否将选项的值传递给回调函数。默认为True。import click
@click.command()
@click.option('--input','-i',help="请输入:input内容",type=str,required=True,default='默认值')
def fun2(input):
print(f"执行fun2方法{input}")
@click.group()
def main():
pass
main.add_command(fun2)
if __name__ == "__main__":
main()
运行:
test_click> python .\demo1.py fun2
执行fun2方法默认值
test_click> python .\demo1.py fun2 -i 老铁双击666
执行fun2方法老铁双击666
test_click> Python .\demo1.py fun2 --help
Usage: demo1.py fun2 [OPTIONS]
Options:
-i, --input TEXT 请输入:input内容 [required]
--help Show this message and exit.
import click
@click.command()
@click.option('--username','-u',help="请输入:用户名",type=str,required=True)
@click.option('--e_mail','-e',help="请输入:邮箱",type=str,required=True)
def getUserInfo(username,e_mail):
print(f"用户名:{username}")
print(f"邮箱:{e_mail}")
@click.group()
def main():
pass
main.add_command(getUserInfo)
if __name__ == "__main__":
main()
test_click> python .\demo1.py getuserinfo --help
Usage: demo1.py getuserinfo [OPTIONS]
Options:
-u, --username TEXT 请输入:用户名 [required]
-e, --e_mail TEXT 请输入:邮箱 [required]
--help Show this message and exit.
test_click> python .\demo1.py getuserinfo -u 张三 -e
123@qq.com
用户名:张三
邮箱:[email protected]
click.echo()
是Python中click包的一个函数,用于在命令行界面输出文本。它接受一个或多个参数,每个参数代表要输出的文本。
values
:可变参数,可以传入任意数量的参数,这些参数将被拼接成一个字符串并输出。
err
:布尔值,默认为False。如果为True,则将输出重定向到stderr。
nl
:布尔值,默认为True。如果为False,则不会在输出末尾添加换行符。
color
:字符串或None,默认为None。如果为字符串,则使用该颜色进行输出。如果为None,则不使用颜色。
file
:文件对象,默认为sys.stdout。如果指定了文件对象,则将输出写入该文件。
import click
@click.command()
def fun1():
click.echo(click.style('这是红色文本', fg='red'))
click.echo(click.style('这是绿色文本', fg='green'))
click.echo(click.style('这是蓝色文本', fg='blue'))
@click.group()
def main():
pass
main.add_command(fun1)
if __name__ == "__main__":
main()