97在线观看播放-无码人妻久久一区二区三区不卡-免费大片黄在线观看-无码少妇一区二区三区芒果-美女不带套日出白浆免费视频-精品国偷自产在线

客服熱線:13033933971

Python超好用的命令行界面實(shí)現(xiàn)工具,我保證你肯定不知道...

2023-02-28 18:55 瀏覽:5 來源:鍋爐之家   
核心摘要:前言Click 是一個(gè)簡潔好用的Python模塊,它能用盡量少的代碼實(shí)現(xiàn)漂亮的命令行界面。它不僅開箱即用、還能支持高度自定義的配置。插件/源碼/素材點(diǎn)這(https://jq.qq.com/?_wv=1027k=eqyEEbK1)官方文檔:https://click.palletsprojects.com/en/8.0.x/一個(gè)簡單的示例如下:import click@click.command() @click.option('

前言

Click 是一個(gè)簡潔好用的Python模塊,它能用盡量少的代碼實(shí)現(xiàn)漂亮的命令行界面。它不僅開箱即用、還能支持高度自定義的配置。

插件/源碼/素材點(diǎn)這(https://jq.qq.com/?_wv=1027&k=eqyEEbK1)

官方文檔:https://click.palletsprojects.com/en/8.0.x/

一個(gè)簡單的示例如下:

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(f"Hello {name}!") if __name__ == '__main__': hello()



效果如下:



可見這個(gè)模塊的強(qiáng)大之處,你只需要在對應(yīng)的函數(shù)上加幾個(gè)裝飾器,就能實(shí)現(xiàn)帶提示符的命令行界面的創(chuàng)建,相當(dāng)方便。

1.準(zhǔn)備

首先需要你的電腦安裝好了Python環(huán)境,并且安裝好了Python開發(fā)工具。

請選擇以下任一種方式輸入命令安裝依賴:

1. Windows 環(huán)境 打開 Cmd (開始-運(yùn)行-CMD)。 2. MacOS 環(huán)境 打開 Terminal (command+空格輸入Terminal)。 3. 如果你用的是 VSCode編輯器 或 Pycharm,可以直接使用界面下方的Terminal.npip install click

2.基本使用

如文首所示的例子一樣,@click.option 是最基本的選項(xiàng),它既可以設(shè)定參數(shù)默認(rèn)值,也可以設(shè)定必須傳入?yún)?shù):

@click.command() @click.option('--n', default=1) # 設(shè)定了默認(rèn)值 def dots(n): click.echo('.' * n) @click.command() @click.option('--n', required=True, type=int) # 設(shè)定必須傳入?yún)?shù)值 def dots(n): click.echo('.' * n)

如果你設(shè)置了必須傳入相關(guān)參數(shù),那么在沒傳入?yún)?shù)的情況下,效果是這樣的:



當(dāng)然,它還支持設(shè)定多種參數(shù)別名,比如下面的 --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.多值參數(shù)

如果你的選項(xiàng)需要多個(gè)參數(shù),Click也能幫你實(shí)現(xiàn)這個(gè)需求。

@click.command() @click.option('--pos', nargs=2, type=float) def findme(pos): a, b = pos click.echo(f"{a} / ")

可見,通過配置nargs參數(shù),你可以將用戶傳遞的值存入元組,并在代碼中解包這個(gè)元組拿到所有的值。

效果如下:



你還可以配置一個(gè)參數(shù)叫 multiple,這個(gè)參數(shù)可以讓你接受N個(gè)值:

@click.command() @click.option('--message', '-m', multiple=True) def commit(message): click.echo(' '.join(message))



4.其他功能

你還可以使用Click來計(jì)數(shù),這個(gè)使用非常罕見:

@click.command() @click.option('-v', '--verbose', count=True) def log(verbose): click.echo(f"Verbosity: {verbose}")

效果如下:


布爾標(biāo)志

此外,Click還帶有布爾標(biāo)志功能,你可以直接使用 “/” 來標(biāo)志參數(shù)為二選一參數(shù),函數(shù)中直接就會(huì)拿到布爾型的變量:

@click.command() @click.option('--shout/--no-shout', default=False) def info(shout): rv = sys.platform if shout: rv = rv.upper() + '!!!!111' click.echo(rv)





選擇選項(xiàng)

你可以直接限定用戶的輸入范圍:

@click.command() @click.option('--hash-type', type=click.Choice(['MD5', 'SHA1'], case_sensitive=False)) def digest(hash_type): click.echo(hash_type)



提示文本

在文首提到的例子中,輸出了個(gè) “You name:” 的提示,其實(shí)是 option 中的prompt參數(shù)控制的:

@click.command() @click.option('--name', prompt='Your name please') def hello(name): click.echo(f"Hello {name}!")



最后

好了,Click的功能就介紹到這里,他還有許多高級的用法,比如動(dòng)態(tài)默認(rèn)值、回調(diào)函數(shù)等等,大家可以通過官方文檔了解這些高

級功能的使用方法:

https://click.palletsprojects.com/en/8.0.x/options/#name-your-options




原文地址:https://mp.weixin.qq.com/s?src=http://ellwoo.com.cn/skin/st05skin/image/nopic.gif>


原文作者:簡說Python

(責(zé)任編輯:小編)
下一篇:

電地暖有哪幾種?

上一篇:

5 個(gè)方便好用的 Python 自動(dòng)化腳本,你要不要...

打賞
免責(zé)聲明
本文僅代表作者個(gè)人觀點(diǎn),本站未對其內(nèi)容進(jìn)行核實(shí),請讀者僅做參考,如若文中涉及有違公德、觸犯法律的內(nèi)容,一經(jīng)發(fā)現(xiàn),立即刪除,作者需自行承擔(dān)相應(yīng)責(zé)任。涉及到版權(quán)或其他問題,請及時(shí)聯(lián)系我們