我知道如何在 Python 解释器(在 unix 上)中设置 Python 对象的自动完成功能。
我需要知道如何在用 python 编写的命令行程序中启用、制表符/自动完成任意项。
我的具体用例是一个需要发送电子邮件的命令行 python 程序。我希望能够在用户键入部分电子邮件地址(并且可以选择按 TAB 键)时自动完成电子邮件地址(我在磁盘上有地址)。
我不需要它在 windows 或 mac 上工作,只需要在 linux 上工作。
最佳答案
使用 Python 的 readline
绑定(bind)。例如,
import readline
def completer(text, state):
options = [i for i in commands if i.startswith(text)]
if state < len(options):
return options[state]
else:
return None
readline.parse_and_bind("tab: complete")
readline.set_completer(completer)
官方module docs没有更详细的,见readline docs了解更多信息。
https://stackoverflow.com/questions/187621/