脚本中的Python选项卡自动完成

时间:2018-09-03 05:11:43

标签: python autocomplete python-3.6

如何在我的Python(3)代码中添加制表符完成功能? 假设我有以下代码:

test = ("January", "February", "March"...)
print(test)
answer = input("Please select one from the list above: ")

我希望用户键入:Jan [TAB] 并自动完成到一月。 有没有简单的方法可以做到这一点?允许使用模块和脚本。 注意:该列表将很长,并且带有非字典词。

1 个答案:

答案 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)