如何干净地退出cmd模块的cmd循环

Sim*_*hes 8 python cmd

我正在使用cmdPython中的模块来构建一个小的交互式命令行程序.但是,从这个文档:http://docs.python.org/2/library/cmd.html,目前尚不清楚以编程方式退出程序(即cmdloop)的干净方法.

理想情况下,我想exit在提示符上发出一些命令,这将退出程序.

ise*_*dev 12

您需要覆盖该postcmd方法:

Cmd.postcmd(停止,行)

在命令调度完成后执行Hook方法.这个方法是Cmd中的存根; 它存在被子类覆盖.line是执行的命令行,stop是一个标志,指示在调用postcmd()之后是否终止执行; 这将是onecmd()方法的返回值.此方法的返回值将用作对应于stop的内部标志的新值; 返回false将导致解释继续.

并从cmdloop文档:

当postcmd()方法返回true值时,将返回此方法.postcmd()的stop参数是命令对应的do _*()方法的返回值.

换一种说法:

import cmd
class Test(cmd.Cmd):
    # your stuff (do_XXX methods should return nothing or False)
    def do_exit(self,*args):
        return True
Run Code Online (Sandbox Code Playgroud)