如何在我的Python(3)代码中添加制表符完成功能? 假设我有以下代码:
test = ("January", "February", "March"...)
print(test)
answer = input("Please select one from the list above: ")
我希望用户键入:Jan [TAB] 并自动完成到一月。 有没有简单的方法可以做到这一点?允许使用模块和脚本。 注意:该列表将很长,并且带有非字典词。
答案 0 :(得分:1)
如果使用的是Linux,则可以使用readline
;如果使用的是Windows,则可以使用pyreadline
;如果没有,则需要安装它:
try:
import readline
except ImportError:
import pyreadline as readline
CMD = ["January", "February", "March"]
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 = input("Please select one from the list above: ")
if cmd == 'exit':
break
print(cmd)