爲此,您使用readline
模塊。
最簡單的代碼,我能想到的:
import readline
COMMANDS = ['extra', 'extension', 'stuff', 'errors',
'email', 'foobar', 'foo']
def complete(text, state):
for cmd in COMMANDS:
if cmd.startswith(text):
if not state:
return cmd
else:
state -= 1
readline.parse_and_bind("tab: complete")
readline.set_completer(complete)
raw_input('Enter section name: ')
用法示例:
Enter section name: <tab>
email errors extension extra foo foobar stuff
Enter section name: e<tab>
email errors extension extra
Enter section name: ext<tab>
extension extra
而且完成,readline
爲您提供:
- 行編輯
- 鍵綁定配置(通常Emacs和vi模式)
- 歷史(向上箭頭回憶以前的值)
- 歷史記錄檢索,保存和載入
謝謝,這正是我所希望的!只有一個問題 - 我無法在我的主系統上運行。我使用Python 2.6在OSX 10.6上,它只是插入'\ t'。所以我啓動了Ubuntu,它在那裏工作得很好 - 你知道是否有一個圖書館是一個更獨立於平臺的方式嗎? – Paulitex 2010-01-12 02:37:20
Apple提供的Pythons不使用GNU readline庫;他們使用BSD派生的編輯線庫。來自python.org的OS X的Python安裝程序使用GNU readline,就像使用MacPorts安裝的最近的Pythons一樣。 – 2010-01-12 03:34:37