扫码关注官方订阅号
如何在 python raw_input 中使用 tab 键补全?
ringa_lee
用 readline, 以下是一個簡單的小範例:
import readline CMD = ['foo1', 'foo2', 'bar1', 'bar2', 'exit'] def completer(text, state): options = [cmd for cmd in CMD if cmd.startswith(text)] if state < len(options): return options[state] else: return None readline.parse_and_bind("tab: complete") readline.set_completer(completer) while True: cmd = raw_input('==> ') if cmd=='exit': break print(cmd)
測試:
==> <TAB><TAB> bar1 bar2 exit foo1 foo2 ==> b<TAB> ==> bar ==> bar<TAB><TAB> bar1 bar2 ==> bar1 bar1 ==> exit
python - readline
GNU Readline Library
其實我沒有完全理解 completer 的作用原理, 尤其是 state 的部分, 希望有高手可以闡釋, 十分感謝!
state
我回答過的問題: Python-QA
微信扫码关注PHP中文网服务号
QQ扫码加入技术交流群
Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
PHP学习
技术支持
返回顶部
拋磚
用 readline, 以下是一個簡單的小範例:
測試:
python - readline
GNU Readline Library
引玉
其實我沒有完全理解 completer 的作用原理, 尤其是
state的部分, 希望有高手可以闡釋, 十分感謝!我回答過的問題: Python-QA