zoukankan      html  css  js  c++  java
  • 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()

    运行使用截图:

  • 相关阅读:
    [FAQ] Cannot use object of type MongoInt64 as array
    [Go] 选择 Beego 的三个理由
    [PHP] 有关PHP浮点数默认显示位数 precision 以及如何调整
    [FAQ] Beego2.0.2 bee 生成的 api 项目运行 404, http server Running on http://:8080
    [K8s] Kubernetes核心基础概念 Node, Pod, ReplicaSet, Deployment, Service, Ingress, ConfigMap
    [FE] uViewUI u-navbar 曲线解决 uni onNavigationBarButtonTap 的限制与失效
    Xmind 8 pro 破解版详细安装教程
    SQL 触发器 暂停 和 启动
    SQL 代理服务无法启动
    MongoDB 项目实例-用户信息增删改查
  • 原文地址:https://www.cnblogs.com/dong973711/p/11989819.html
Copyright © 2011-2022 走看看