• Python的Cmd模块的简易运用学习


    昨天大佬阿炳给发了一份代码给我,看着感觉很好玩,这是自己写了个命令行吗,完了我就找篇更详细一点的博客学习了一下

     cmd的主要方法和属性

    方法:

    • (1)cmdloop():类似与Tkinter的mainloop,运行Cmd解析器;
    • (2)onecmd(str):读取输入,并进行处理,通常不需要重载该函数,而是使用更加具体的do_command来执行特定的命令;
    • (3)emptyline():当输入空行时调用该方法;
    • (4)default(line):当无法识别输入的command时调用该方法;
    • (5)completedefault(text,line,begidx,endidx):如果不存在针对的complete_*()方法,那么会调用该函数,该函数主要是用于tab补充,且只能在linux下使用。
    • (6)precmd(line):命令line解析之前被调用该方法;
    • (7)postcmd(stop,line):命令line解析之后被调用该方法;
    • (8)preloop():cmdloop()运行之前调用该方法;
    • (9)postloop():cmdloop()退出之后调用该方法;
    • (10)help_command():对command命令的说明,其中command为可变字符

    属性:

    • (1)prompt:交互式提示字符,也就是刚才的(Cmd)可以换成我们自己想要的字符
    • (2)intro:在进入交互式shell前输出的字符串,可以认定为标志语之类的。其实这个可以在preloop方法输出也是一样的

    代码:

    在阿炳写的代码的基础上根据上面那篇参考博客增加了一点代码,让自己更清除的理解

    注意以do_和help_开头的函数的作用(do_ * 开头为命令,执行的名令,以help_ * 开头的为帮助,对应命令的帮助说明)

    from cmd import Cmd
    
    
    class BingCmd(Cmd):
        """just try try"""
    
        prompt = "BingCmd>"
        intro = "Welcome to BingCMD"
    
        # 在cmd.Cmd派生类中,以do_ * 开头为命令,以help_ * 开头的为帮助
        def print_log(self, argv):
            print("la la la ")
    
        def do_bing(self, argv):
            self.print_log(argv)
    
        def help_bing(self):
            print("just print la la la")
    
        def do_hu(self, argv):
            print("调用hu功能")
    
        def help_hu(self):
            print("输出hu")
    
        def do_exit(self, argv):
            # 处理方法返回True,则直接退出循环。
            print("exit()")
            return True
    
        def help_exit(self):
            print("用来退出")
    
        def preloop(self):
            print("cmdloop()运行之前调用该方法")
    
        def postloop(self):
            print("cmdloop()退出之后调用该方法")
    
    
    if __name__ == "__main__":
        BingCmd().cmdloop()

    运行使用截图:

  • 相关阅读:
    Python3.4 + Django1.7.7 搭建简单的表单并提交
    python3.4 + Django1.7.7 表单的一些问题
    TypeScript(10): String(同JS)
    TypeScript(09): Number(同JS)
    TypeScript(08): 循环
    TypeScript(07): 条件语句(同JS)
    TypeScript(06): 运算符(同JS)
    TypeScript(05): 变量声明
    TypeScript(04): 基础类型
    TypeScript(03):基础语法
  • 原文地址:https://www.cnblogs.com/dong973711/p/11989819.html
Copyright © 2020-2023  润新知