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