我想做一个CLI,最好是用Python编写。我需要一个多级CLI,并且我想要tab键自动完成。
我查看了Python标准库中的cmd模块和readline的“complete”函数(用于tab键自动完成)。
它们都有缺点,即我还没有弄清楚如何处理多个级别,例如:
我查看了Python标准库中的cmd模块和readline的“complete”函数(用于tab键自动完成)。
它们都有缺点,即我还没有弄清楚如何处理多个级别,例如:
level1
level2
level2_subcommand_1
level2_subcommand_2
level3
level3_subcommand_1
示例: 如果我输入:
cmd> level2
我希望在按下Tab键时,看到level2_subcommand_1和level2_subcommand_2出现,但不应该有level1和level3。
使用cmd库和readline都无法实现此功能。
SubInterpreterForLevel2
应该被称为SubInterpreter
(正如你正确指出的那样),另外do_quit
函数缺少了args
参数,但除此之外对我来说完全正常工作。输入level2
会将提示符更改为(level2)
并将我带到子解释器。在(level2)
中输入quit
会将我带回到(Cmd)
。当你输入level2
时,你有收到任何错误消息吗? - Tamás