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!命令列
- 資料庫操作命令列神器:mycli資料庫命令列
- 82 原則的命令列提示神器命令列
- Python 處理指令碼的命令列引數(二):使用clickPython指令碼命令列
- ROS命令列工具ROS命令列
- 推薦一款 MySQL 命令列神器MySql命令列
- EFCore之命令列工具命令列
- 用 nodejs 寫一個命令列工具 :建立 react 元件的命令列工具NodeJS命令列React元件
- k8s命令列web代理神器gottyK8S命令列WebGo
- JDK常用的命令列工具JDK命令列
- modelscope 命令列工具下載模型命令列模型
- Cobra 庫上手—自建命令列工具命令列
- go Cobra命令列工具入門Go命令列
- python製作命令列工具——firePython命令列
- JVM 常用命令列工具JVM命令列
- Vue-cli 命令列工具分析Vue命令列
- node.js 命令列工具(cli)Node.js命令列
- 俚語搜尋命令列工具命令列
- web3j命令列工具Web命令列
- 命令列郵件傳送工具命令列
- Windows terminal 好用的 Windows 命令列工具Windows命令列
- 微軟最爽命令列工具釋出!微軟命令列
- 優秀的命令列工具整理(三)命令列
- 用 Plumbum 開發 Python 命令列工具Python命令列
- 優秀的命令列工具整理(二)命令列
- Linux系統壓力測試工具(命令列工具)Linux命令列
- 【工具分享】idomain一個命令列域名查詢工具AI命令列
- Git命令太多記不住?有了這個神器,從此告別輸入命令列Git命令列
- 命令列視覺化工具lazydocker 安裝命令列視覺化Docker
- 安裝oh-my-zsh(命令列工具)命令列
- 自定義命令列計算工具:AYBO for Mac命令列Mac
- 使用node.js構建命令列工具Node.js命令列
- 短小精悍 —— Redis 命令列工具的妙用Redis命令列
- 假裝很忙的三個命令列工具命令列
- 如何在mac電腦上配置命令列工具Mac命令列
- 命令列常用工具的替代品命令列