当前位置: 首页 > 面试题库 >

如何使python命令行程序自动完成任意内容NOT解释器

鲁炳
2023-03-14
问题内容

我知道如何在python解释器中(在Unix上)设置python对象的自动完成功能。

  • Google展示了许多热门内容,以说明如何执行此操作。
  • 不幸的是,有太多的参考文献,很难找到我需要做的事情,这略有不同。

我需要知道如何在以python编写的命令行程序中启用,制表符/自动完成任意项。

我的特定用例是需要发送电子邮件的命令行python程序。我希望能够在用户键入部分电子邮件地址(并有选择地按TAB键)时自动完成电子邮件地址(磁盘上有地址)。

我不需要它就可以在Windows或Mac上运行,而只需Linux。


问题答案:

使用Python的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文档以获取更多信息。



 类似资料:
  • 问题内容: 我知道如何在python解释器中(在Unix上)设置python对象的自动完成功能。 Google展示了许多热门内容,以说明如何执行此操作。 不幸的是,有太多的参考文献,很难找到我需要做的事情,而这略有不同。 我需要知道如何在以python编写的命令行程序中启用,制表符/自动完成任意项。 我的特定用例是需要发送电子邮件的命令行python程序。我希望能够在用户键入部分电子邮件地址(并有

  • 我曾试图关闭android应用程序使用adb命令和appium服务器,但它是最小化应用程序,而不是关闭。我用下面的命令关闭。 adb shell am force-stop com.package.name 如果我尝试这个命令杀死进程,它会说,

  • 问题内容: 我有一个脚本,可通过popen shell命令启动。问题在于脚本不会等到该popen命令完成后才继续运行。 如何告诉我的Python脚本等待shell命令完成? 问题答案: 根据您想如何使用脚本,您有两种选择。如果您希望命令阻塞并且在执行过程中不执行任何操作,则可以使用。 如果您想在执行过程中执行操作或将内容输入,可以在调用后使用。 如文档中所述,可能会死锁,因此建议进行通信。

  • 问题内容: 在pod内的容器中,如何使用kubectl运行命令?例如,如果我需要在容器内执行以下操作: kubectl得到豆荚 我已经试过了:在我的dockerfile中,我有以下命令: 编辑:我正在尝试OSX文件,我已将其更正为linux二进制文件。(由@svenwltr纠正 在创建docker文件时,这是成功的,但是当我在容器中运行kubectl get pod时, 我收到此错误: 与服务器的

  • Pip命令不返回任何内容。我输入$pip[command],得到的只是一个没有任何指令运行的新行。 %CommonProgramFiles%\Microsoft Shared\Windows Live;%SystemRoot%\System32;%SystemRoot%;%SystemRoot%\System32\WBEM;%SystemRoot%\System32\windowspowerShe

  • 问题内容: 我有以下过程代码: 当我键入Oracle时返回。最大的问题是它将返回“测试”。Oracle为什么不返回“测试”? 问题答案: 您需要启用打印到标准输出。 在SQL * Plus中,最简单的方法是使用serveroutput: