Click: 命令列工具神器
Click是一個Python用來快速實現命令列應用程式的包,主要優勢表現在以下三點:
任意巢狀命令
自動生成幫助頁
自動執行時lazy載入子命令
示例程式:
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()
執行結果:
$ python hello.py --count=3Your name: John Hello John! Hello John! Hello John!
它還會自動生成格式化好的幫助資訊:
$ python hello.py --help Usage: hello.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.
快速入門
安裝
pip install Click
建立一個命令
透過裝時器函式click.command()來註冊命令
import click@click.command()def hello(): click.echo("Hello World!")if __name__ == '__main__': hello()
輸出結果:
$ python hello.pyHello World!
相應的幫助頁:
$ python hello.py --help Usage: hello.py [OPTIONS] Options: --help Show this message and exit.
輸出
為什麼不用print,還要加入一個echo呢。Click嘗試用一個相容Python 2和Python 3相同方式來處理。也防止了一些終端編碼不一致出現UnicodeError異常。
Click 2.0還加入了ANSI colors支援,如果輸出結果到檔案中還會自動去處ANSI codes。
要使用ANSI colors我們需要colorama包配合操作:
pipenv install colorama
示例:
click.echo(click.style("Hello World!", fg='green')) # click.secho('Hello World!', fg='green')
巢狀命令
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()
新增引數
使用option()和argument()裝飾器增加引數
@click.command()@click.option('--count', default=1, help='number of greetings')@click.argument('name') def hello(count, name): for x in range(count): click.echo('Hello %s!' % name) What it looks like: $ python hello.py --helpUsage: hello.py [OPTIONS] NAMEOptions: --count INTEGER number of greetings --help Show this message and exit.
繼承setuptools
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/3244/viewspace-2819281/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 命令列神器 Click 簡明筆記命令列筆記
- 命令列神器 - tldr 和 fuck命令列
- "國罵"命令列神器 thefuke!命令列
- 開發一款圖片壓縮工具(三):使用 click 實現命令列命令列
- 資料庫操作命令列神器:mycli資料庫命令列
- 82 原則的命令列提示神器命令列
- ROS命令列工具ROS命令列
- 推薦一款 MySQL 命令列神器MySql命令列
- Python 處理指令碼的命令列引數(二):使用clickPython指令碼命令列
- TortoiseSVN 命令 (命令列執行工具)命令列
- k8s命令列web代理神器gottyK8S命令列WebGo
- 有哪些命令列的軟體堪稱神器?命令列
- 監控 Linux 容器效能的命令列神器Linux命令列
- EFCore之命令列工具命令列
- 使用SVN命令列工具命令列
- windows命令列工具(轉)Windows命令列
- ngxtop:在命令列實時監控 Nginx 的神器命令列Nginx
- 用 nodejs 寫一個命令列工具 :建立 react 元件的命令列工具NodeJS命令列React元件
- JDK常用的命令列工具JDK命令列
- DB2_命令列工具DB2命令列
- 【Nginx】ngxtop:在命令列實時監控 Nginx 的神器Nginx命令列
- 微軟最爽命令列工具釋出!微軟命令列
- Vue-cli 命令列工具分析Vue命令列
- 俚語搜尋命令列工具命令列
- JVM 常用命令列工具JVM命令列
- go Cobra命令列工具入門Go命令列
- process.argv與命令列工具命令列
- 命令列郵件傳送工具命令列
- node.js 命令列工具(cli)Node.js命令列
- Python 開發命令列工具Python命令列
- 一些命令列效率工具命令列
- tkprof命令列工具用法小結命令列
- Cobra 庫上手—自建命令列工具命令列
- 優秀的命令列工具整理(二)命令列
- 優秀的命令列工具整理(三)命令列
- web3j命令列工具Web命令列
- python製作命令列工具——firePython命令列
- Python 非同步呼叫命令列工具Python非同步命令列