Python命令行实现
原创2024年6月6日大约 2 分钟
Python命令行实现
Python命令行实现主要依赖于
click模块。
click是一个用于创建命令行接口(CLI)的 Python 包。它具有高度的可配置性,能够以尽可能少的代码创建出功能强大的 CLI 应用。
检查安装
首先,确认是否安装
click, 没有安装执行下面命令安装
pip install click演示示例
Hello word例子
这是一个最小的 CLI 程序,用于向用户问好:
import click
@click.command()
@click.argument('name')
def hello(name):
click.echo(f'Hello, {name}!')
if __name__ == '__main__':
hello()这个程序接收一个名为
name的参数,然后输出问候语。如果将此代码保存为cli_hello.py,你可以在命令行中运行:
python cli_hello.py Jack输出将会是:
Hello, Jack!使用选项
你可以使用
@click.option装饰器为命令添加选项。例如:
import click
@click.command()
@click.option('--count', default=1, help='Number of loops .')
@click.argument('name')
def hello(count, name):
for _ in range(count):
click.echo(f'Hello, {name}!')
if __name__ == '__main__':
hello()你可以通过以下方式运行这个程序:
python cli_hello.py --count 3 Jack输出将会是:
Hello, Jack!
Hello, Jack!
Hello, Jack!使用命令组
有时候你可能需要创建一个包含多个子命令的 CLI 工具。你可以使用
@click.group来实现:
import click
@click.group()
def cli():
pass
@cli.command()
def initdb():
click.echo('Initialized the database')
@cli.command()
def dropdb():
click.echo('Dropped the database')
if __name__ == '__main__':
cli()保存为 manage.py 后,可以这样运行:
python manage.py initdb输出:
Initialized the database或者:
python manage.py dropdb输出:
Dropped the database组合参数和选项
你可以将参数和选项组合在一起使用:
import click
@click.command()
@click.option('--count', default=1, help='Number of greetings.')
@click.option('--greeting', default='Hello', help='Greeting to use.')
@click.argument('name')
def hello(count, greeting, name):
for _ in range(count):
click.echo(f'{greeting}, {name}!')
if __name__ == '__main__':
hello()运行:
python cli_hello.py --count 2 --greeting Hi Jack输出:
Hi, Jack!
Hi, Jack!小结
click是一个非常强大的工具,可以帮助你轻松创建功能强大的命令行接口。通过组合使用@click.command、@click.option和@click.argument等装饰器,你可以创建各种复杂的 CLI 应用。