我知道如何在python解释器中(在Unix上)设置python对象的自动完成功能。
我需要知道如何在以python编写的命令行程序中启用,制表符/自动完成任意项。
我的特定用例是需要发送电子邮件的命令行python程序。我希望能够在用户键入部分电子邮件地址(并有选择地按TAB键)时自动完成电子邮件地址(磁盘上有地址)。
我不需要它就可以在Windows或Mac上运行,而只需Linux。
使用Python的readline绑定。例如,
readline
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)
官方模块文档没有更多详细信息,请参阅readline文档以获取更多信息。