Python包含一个公共类cmd,它可以用作基类交互外壳和其他命令解释器。默认情况下,它使用readline交互操作,命令行编辑和命令完成。命令行解释器使用cmd创建读取所有的输入和分析他们在一个循环中,然后将命令发送到一个适当的命令处理程序。解析输入行为分为两部分:命令和参数。如果用户输入cmd参数,解释为命令cmd和参数的参数,然后调用do_cmd方法参数作为参数。如果do_cmd命令处理器返回true,那么程序将退出干净,否则它将继续等待下一个命令的输入。印刷一个简单的示例目录文件或目录:# - * -编码:gbk - *进口cmdimport osimport sysclassCLI (): def __init__(自我):.
描述:在派生类中,命令从do_ *命令,这些从help_ *帮助,__doc__成员函数可以用来帮助描述。您可以使用= \当印刷的帮助,使用doc_header、misc_header undoc_header可以用来格式化输出。按下选项卡就可以实现自动完成。在多个选项的情况下,按2 TAB键可以列出所有选项。添加前缀complete_自动完成方法。defcomplete_dir(自我、文本行、begidx endidx):如果不是文本:完成= [\有几种方法可以在cmd重载,可以用来显示行动或改变基类的行为。一般来说,由于存在preloop()和postloop(),没有必要或需要过载cmdloop()方法。
如果更改线是空的,emptyline()方法将被调用。默认实现运行前面的命令。如果改变行包含一个命令,第一个电话precmd(),然后找到方法调用处理器,并调用postcmd()无论命令。为了补充标准命令处理,cmd包含两个特殊命令的前缀。问号(?)相当于内置的帮助命令。感叹号(!)将被映射到do_shell()来运行其他命令。感叹号需要do_shell方法。启用,您需要添加它自己。def do_shell(自我,arg):\u201C运行shell commad\u201Dsub_cmd =(参数、shell = True),打印sub_ () [0]