import
readline
import
os
def
completer
(
text
,
state
)
:
ds
=
os
.
listdir
(
)
rs
=
list
(
filter
(
lambda
s
:
s
.
startswith
(
text
)
,
ds
)
)
if
state
<
len
(
rs
)
:
return
rs
[
state
]
return
None
readline
.
parse_and_bind
(
"tab: complete"
)
readline
.
set_completer
(
completer
)
input
(
)
-
形象理解的話,
state
其實就是第幾選項的序號。 -
必須注意如果在函數(shù)中有錯誤的話,在你按下tab鍵后什么都不會發(fā)生(新手會在這里卡殼,還以為是環(huán)境問題)。要知道,
readline
非常高級地封裝了你的函數(shù),這樣才能在input
中補全。但這對debug來說不見得是一件好事。較好的方法是先調(diào)用一下你的函數(shù)并檢查輸出,這樣函數(shù)中的Exception會正常拋出。
# 加上這句:
completer
(
'foo'
,
0
)
更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯(lián)系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機(jī)微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
