前言
Click 是一個簡潔好用的Python模塊,它能用盡量少的代碼實作漂亮的命令列界面,它不僅開箱即用、還能支持高度自定義的配
置,
官方檔案:https://click.palletsprojects.com/en/8.0.x/
一個簡單的示例如下:
import click PYTHON插件/素材/原始碼加Q群:903971231#### @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(f"Hello {name}!") if __name__ == '__main__': hello()

效果如下:

可見這個模塊的強大之處,你只需要在對應的函式上加幾個裝飾器,就能實作帶提示符的命令列界面的創建,相當方便,
1.準備
首先需要你的電腦安裝好了Python環境,并且安裝好了Python開發工具,
請選擇以下任一種方式輸入命令安裝依賴:
1. Windows 環境 打開 Cmd (開始-運行-CMD), 2. MacOS 環境 打開 Terminal (command+空格輸入Terminal), 3. 如果你用的是 VSCode編輯器 或 Pycharm,可以直接使用界面下方的Terminal. pip install click
2.基本使用
如文首所示的例子一樣,@click.option 是最基本的選項,它既可以設定引數默認值,也可以設定必須傳入引數:
@click.command() @click.option('--n', default=1) # 設定了默認值 def dots(n): click.echo('.' * n) @click.command() @click.option('--n', required=True, type=int) # 設定必須傳入引數值 def dots(n): click.echo('.' * n)
如果你設定了必須傳入相關引數,那么在沒傳入引數的情況下,效果是這樣的:

當然,它還支持設定多種引數別名,比如下面的 --from 和 -f 是等效的:
@click.command() @click.option('--from', '-f', 'from_') @click.option('--to', '-t') def reserved_param_name(from_, to): click.echo(f"from {from_} to {to}")


3.多值引數
如果你的選項需要多個引數,Click也能幫你實作這個需求,
@click.command() @click.option('--pos', nargs=2, type=float) def findme(pos): a, b = pos click.echo(f"{a} / {b}")
可見,通過配置nargs引數,你可以將用戶傳遞的值存入元組,并在代碼中解包這個元組拿到所有的值,
效果如下:

你還可以配置一個引數叫 multiple,這個引數可以讓你接受N個值:
@click.command() @click.option('--message', '-m', multiple=True) def commit(message): click.echo(' '.join(message))

4.其他功能
你還可以使用Click來計數,這個使用非常罕見:
@click.command() @click.option('-v', '--verbose', count=True) def log(verbose): click.echo(f"Verbosity: {verbose}")
效果如下:
布爾標志
此外,Click還帶有布爾標志功能,你可以直接使用 “/” 來標志引數為二選一引數,函式中直接就會拿到布爾型的變數:
import sys python插件/原始碼/素材加Q群:903971231### @click.command() @click.option('--shout/--no-shout', default=False) def info(shout): rv = sys.platform if shout: rv = rv.upper() + '!!!!111' click.echo(rv)


選擇選項
你可以直接限定用戶的輸入范圍:
@click.command() @click.option('--hash-type', type=click.Choice(['MD5', 'SHA1'], case_sensitive=False)) def digest(hash_type): click.echo(hash_type)

提示文本
在文首提到的例子中,輸出了個 “You name:” 的提示,其實是 option 中的prompt引數控制的:
@click.command() @click.option('--name', prompt='Your name please') def hello(name): click.echo(f"Hello {name}!")

最后
好了,Click的功能就介紹到這里,他還有許多高級的用法,比如動態默認值、回呼函式等等,大家可以通過官方檔案了解這些高
級功能的使用方法:
https://click.palletsprojects.com/en/8.0.x/options/#name-your-options

轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/495476.html
標籤:Python
上一篇:顯示灰色區域的片段
下一篇:Django cors跨域問題
