Python的Cmd模块的简易运用学习
2024-09-27 22:21:45
昨天大佬阿炳给发了一份代码给我,看着感觉很好玩,这是自己写了个命令行吗,完了我就找篇更详细一点的博客学习了一下
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()
运行使用截图:
最新文章
- python基础编程
- 系统吞吐量、TPS(QPS)、用户并发量、性能测试概念和公式
- 【hdu2795】Billboard
- 【Android测试】【第三节】ADB——源码浅谈
- Homework3
- TensorFlow深度学习笔记 文本与序列的深度模型
- Spring 从零開始-05
- linux命令学习-3-sysctl
- dubbox注解的一个坑
- WEB服务器如何选择 Apache or Nginx?
- PHP-无限级分类(迭代法创建)
- HyperLedger Fabric Introduction——区块链超级账本介绍
- 【JVM】-NO.113.JVM.1 -【JDK11 HashMap详解-4-resize()】
- ls(ll)排序问题
- scheme的split实现
- POJ 1151Atlantis 矩形面积并[线段树 离散化 扫描线]
- sql排序方法
- elasticsearch5.5
- LaTex 常见错误及解决办法
- Tornado之实例和扩展
热门文章
- 【原创】经验分享:一个小小emoji尽然牵扯出来这么多东西?
- GAN网络之入门教程(五)之基于条件cGAN动漫头像生成
- beego log
- php-ffmpeg 操作视频/音频文件
- Nexus 安装教程
- 修改apt,pip,npm为国内镜像源
- Linux用户和组管理命令-用户创建useradd
- MySQL历史
- Vue踩坑日记-You may use special comments to disable some warnings. Use // eslint-disable-next-line to ignore the next line. Use /* eslint-disable */ to ignore all warnings in a file.
- Nacos配置中心使用