Python readline帮助功能&;自动完成

Python readline帮助功能&;自动完成,python,readline,Python,Readline,我愿意创建一个与JUNOS cli或cisco cli相同的项目 我是通过gnu readline完成的,但是我很困惑,因为有太多的函数和方法需要实现。我希望cli具有自动完成功能,使用带有问号的选项卡和空格键显示带有帮助文本的命令 我有两个问题: 我已经在python和perl中找到了代码,但我并不使用python,因为代码是完整的,我只是想知道我是否应该继续使用python。我在perl方面比较有经验,但是到目前为止我发现的perl代码并不完整 readline.parse_和_bind('

我愿意创建一个与JUNOS cli或cisco cli相同的项目

我是通过gnu readline完成的,但是我很困惑,因为有太多的函数和方法需要实现。我希望cli具有自动完成功能,使用带有问号的选项卡和空格键显示带有帮助文本的命令

我有两个问题:

  • 我已经在python和perl中找到了代码,但我并不使用python,因为代码是完整的,我只是想知道我是否应该继续使用python。我在perl方面比较有经验,但是到目前为止我发现的perl代码并不完整
  • readline.parse_和_bind('tab:complete')
  • 我应该为帮助和自动完成功能使用相同的完整功能吗。我已经经历了另一个功能

    readline.set_completion_display_matches_hook(print_suggestions)
    

    你的建议:p我对它完全陌生

    我必须说,我很难理解你在你的问题中提到了哪一点。但这里有一个建议:


    从模块开始。它为您提供了一个构建命令行解释器的小框架。它支持开箱即用的制表符完成(前提是有readline可用)。开始实现您的命令行界面。一旦这种情况稳定下来,您可以考虑增加更多的舒适性,例如命令参数、帮助键等的制表符完成。这样,您就有了一个可以工作的应用程序,可以在您真正需要时更具体地处理readline详细信息。如果我站在你的立场上,我不会预先浏览整个readline API。

    我们必须创建一个类似于JunOS/Cisco/VyOS的cli,并将其构建在ishell之上,ishell使用readline完成此任务

    从项目页面:

    ishell帮助您轻松地为应用程序创建交互式shell。它支持命令完成、动态参数、命令历史记录和命令链接

    您可以在github上查看项目:

    Cisco示例:


    PS:我是作者:)。

    很抱歉,但看起来你完全误解了
    阅读行的目的;该模块在python解释器内部工作。您正在尝试构建自己的自定义shell,如bash,但使用JunOS或ciscoios语法。我很想看到其他人发布的答案,但我想我应该澄清一下你的要求,并且
    readline
    没有做你认为它做的事情。我发现你的问题非常难以理解。你想达到的具体目标是什么?如果您只想创建cli,那么根本不需要readline就可以走很长的路。你说的是“完整的代码”-在什么方面完成?