python 的命令行交互包 click

python 有很多命令行交互的包,曾经用过的有 argparse 等。借助这些包,可以很容易把 python 脚本写的如同其他 linux 命令一样,从终端中以易懂的方式接收参数,显示帮助信息等。 最近看到一个类似的 python 包 click ,可以通过修饰器,用更简洁优雅的方式实现上述功能。

下面是官网提供的示例代码:

import click

@click.command()
@click.option('--count', default=1, help='Number of greetings.')
@click.option('--name', prompt='Your name',
              help='The person to greet.')
def hello(count, name):
    """Simple program that greets NAME for a total of COUNT times."""
    for x in range(count):
        click.echo('Hello %s!' % name)

if __name__ == '__main__':
    hello()

测试结果是

abc@abc:~$ python test.py --help
Usage: test.py [OPTIONS]

  Simple program that greets NAME for a total of COUNT times.

Options:
  --count INTEGER  Number of greetings.
  --name TEXT      The person to greet.
  --help           Show this message and exit.
abc@abc:~$ python test.py --name abc --count 3
Hello abc!
Hello abc!
Hello abc!
abc@abc:~$ python test.py
Your name: abc
Hello abc!

argparse 的使用示例见 https://blog.ixxoo.me/argparse.html

click 教程见 https://click.palletsprojects.com/en/7.x/

Visits: 229

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注

*