@click.command(
)@click.option(
'--n'
, default=1)
defdots
(n):
click.echo(
'.'* n)
執行$ dots --n=2,輸出…當引數的值大於1個是,用引數nargs指定引數個數,option的引數個數是固定的。引數將以tuple的格式傳遞給變數。
@click.command(
)@click.option(
'--pos'
, nargs=2,
type
=float
)def
findme
(pos)
: click.echo(
'%s / %s'
% pos)
執行findme --pos 2.0 3.0,輸出2.0 / 3.0在上乙個列子中兩個引數的型別是相同的,但這可能並不是你想要的,有時候需要兩個不同型別的值。那麼可以這樣。
@click.command(
)@click.option(
'--item'
,type=(
unicode
,int))
defputitem
(item)
: click.echo(
'name=%s id=%d'
% item)
當type引數為tuple型別時,nargs為type的長度。
putitem --item peter 1338,輸出name=peter id=1338類似但不同於多值選項,有時候需要多次輸入相同的選項。
@click.command(
)@click.option(
'--message'
,'-m'
, multiple=
true
)def
commit
(message)
: click.echo(
'\n'
.join(message)
)
執行commit -m foo -m bar 輸出:
foo
bar
@click.command(
)@click.option(
'-v'
,'--verbose'
, count=
true
)def
log(verbose)
: click.echo(
'verbosity: %s'
% verbose)
執行log -vvv,輸出verbosity: 3布林標記是用來啟用或禁用的選項,你可以用/分隔符來實現啟用或禁用選項。(當/在選項名中的時候,click就會認為它是個boolean標記)。
import sys
@click.command(
)@click.option(
'--shout/--no-shout'
, default=
false
)def
info
(shout)
: rv = sys.platform
if shout:
rv = rv.upper()+
'!!!!111'
click.echo(rv)
執行:
$ info -
-shout
linux2!!!!111
$ info -
-no-shout
linux2
也可以不用/,而是用is_flag引數告知click這是乙個boolean標記。
@click.command(
)@click.option(
'--shout'
, is_flag=
true
)def
info
(shout)
: rv = sys.platform
if shout:
rv = rv.upper()+
'!!!!111'
click.echo(rv)
boolean值預設是false.
如果option未輸入時,提示。使用prompt引數,prompt=true則使用預設提示,也可以prompt=「使用自定義提示語」
@click.command(
)@click.option(
'--name'
, prompt=
'your name please'
)def
hello
(name)
: click.echo(
'hello %s!'
% name)
執行:
$ hello
your name please: john
hello john!
隱藏輸入字元,並兩次輸入確認。
@click.command(
)@click.option(
'--password'
, prompt=
true
, hide_input=
true
, confirmation_prompt=
true
)def
encrypt
(password)
: click.echo(
'encrypting password to %s'
% password.encode(
'rot13'
))
執行:
$ encrypt
password:
repeat for confirmation:
encrypting password to frperg
更簡單的:
@click.command(
)@click.password_option(
)def
encrypt
(password)
: click.echo(
'encrypting password to %s'
% password.encode(
'rot13'
))
python命令列開發 click
參考文件 按照官方的介紹 click 是乙個利用很少的 以可組合的方式創造優雅命令列工具介面的 python 庫。它是高度可配置的,但卻有合理預設值的 命令列介面建立工具 它致力於將建立命令列工具的過程變的快速而有趣,免除你因無法實現乙個 cli api 的挫敗感。click 的三個特性 任意巢狀命...
國罵 命令列神器 thefuke
thefuke是乙個由python語言編寫的,自動修正錯誤命令的工具,因為獨特的命名,大受好評 自動修正命令的功能並非thefuke的原創,zsh的一些外掛程式也支援命令修正,thefuke的 命名 實在是太獨特了 一群吃瓜群眾都想看看thefuke到底是個什麼工具,一來二去,thefuke變得廣為...
命令列快速跳轉 編輯神器fasd
天下武功唯快不破,命令列雖然很多時候很快,但是整體的cd,ls,cd,ls也是讓人心煩。之前使用了autojump,可以通過關鍵字跳轉到最頻繁操作的目錄中,快!今天介紹的fasd,除了可以像autojump一樣在目錄中跳轉,還可以通過關鍵字開啟最頻繁操作的檔案,更快!centos的預設軟體倉庫中沒有...