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

Python tab autocompletion in script

提问人:Coco Nut 提问时间:9/3/2018 更新时间:4/12/2022 访问量:2424

问:

如何将制表符补全添加到我的 Python (3) 代码中? 假设我有这个代码:

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

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

自动完成 python-3.6

评论


答:

4赞 atline 9/3/2018 #1

如果你使用的是linux,你可以使用,如果windows,你可以使用,如果没有,你需要安装它:readlinepyreadline

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)