Python使用cmd模块构造命令行界面

最近做测试工具,实在懒得搞GUI,然后意识到python自带一个模块叫cmd,用了用发现简直是救星。默认cmd模块中的Cmd类会使用rawinput来处理提示符显示和输入信息获取的工作,但是特定情况下会有个问题:

当交互线程等待用户输入指令的时候,如果希望另外一些后台线程可以打印信息到前台显示的话……

打印当然是打印出来了,但只要开始输入新的指令,这些打印信息就都被清除掉了,只剩下提示符和新的输入。如果想实时看什么东西的话……

反复尝试和阅读cmd模块源码以后发现,Cmd类在实例化的时候,默认会有个use_rawinput属性是为1的,如果重载__init__()的时候把它设置为0,那么会改为通过readline来处理提示符和输入(当然你如果在windows上玩这一手的话,最好先把pyreadline装上,windows上我没弄过gnu readline,不知道有没搞成了的),然后打印信息被擦除的问题就得以解决了。

时间: 2024-10-27 10:02:28

Python使用cmd模块构造命令行界面的相关文章

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

昨天大佬阿炳给发了一份代码给我,看着感觉很好玩,这是自己写了个命令行吗,完了我就找篇更详细一点的博客学习了一下  cmd的主要方法和属性 方法: (1)cmdloop():类似与Tkinter的mainloop,运行Cmd解析器: (2)onecmd(str):读取输入,并进行处理,通常不需要重载该函数,而是使用更加具体的do_command来执行特定的命令: (3)emptyline():当输入空行时调用该方法: (4)default(line):当无法识别输入的command时调用该方法:

python cmd模块练习

1 # encoding=utf-8 2 import cmd 3 import sys 4 5 6 # cmd模块练习 7 8 class Client(cmd.Cmd): 9 10 ''' 11 1)cmdloop():类似与Tkinter的mainloop,运行Cmd解析器: 12 2)onecmd(str):读取输入,并进行处理,通常不需要重载该函数,而是使用更加具体的do_command来执行特定的命名: 13 3)emptyline():当输入空行时调用该方法: 14 4)defau

Python中peewee模块

Python中peewee模块,有需要的朋友可以参考下. 前言关于ORM框架: 简介: 对象关系映射(英语:Object Relational Mapping,简称ORM,或O/RM,或O/R mapping),是一种程序技术,用于实现面向对象编程语言里不同类型系统的数据之间的转换.从效果上说,它其实是创建了一个可在编程语言里使用的"虚拟对象数据库". 对象关系映射(Object-Relational Mapping)提供了概念性的.易于理解的模型化数据的方法.ORM方法论基于三个核心

Python中subprocess 模块 创建并运行一个进程

python的subprocess模块,看到官方声明里说要尽力避免使用shell=True这个参数,于是测试了一下: from subprocess import call import shlex cmd = "cat test.txt; rm test.txt" call(cmd, shell=True) 运行之后: 1:打开并浏览了test.txt文件 2:删除了test.txt文件 from subprocess import call import shlex cmd = &

python之OS模块(对文件or目录操作)

OS模块 os,语义为操作系统,包含普遍的操作系统功能,与具体的平台无关.python编程时,处理文件和目录这些操作,就比如说:显示当前目录下所有文件/删除某个文件/获取文件大小-- os模块不受平台限制,也就是说:当我们要在linux中显示当前命令时就要用到pwd命令,而Windows中cmd命令行下就要用到这个,例如:这时候我们使用python中os模块的os.path.abspath(name)功能,甭管是linux或者Windows都可以获取当前的绝对路径. 常见函数列表 os.name

python中的模块安装

python中的模块研究: 需要用import导入的模块都是用python实现的. 内建的部分是用c.c++实现的. pypi:第三方的python包. 在windows上安装python: 1.安装python到C:\PythonXX,添加系统环境变量path:C:\PythonXX. 安装pypi库的方法三种方法: 1.在pypi上下载安装包离线安装 cd  $package-dir python   setup.py  install 在windos的cmd上也可以这样安装. 3.用eas

Python如何安装模块

以安装Beautifulsoup4为例: 1.到网站上下载:http://www.crummy.com/software/BeautifulSoup/bs4/download/ 2.解压文件到C:\Python27 3.cmd运行C:\Python27\BeautifulSoup>python setup.py install 4.测试一下是否能导入: >>> import bs4 如果不能导入,会提示:ImportError: No module named bs4 如果是之前的

Python如何导入模块

为了在CMD中的任何位置打开python程序,将pyhon的安装目录导入到环境变量中,如我的安装目录D:\Python27,桌面计算机--->右键属性--->高级系统设置-->环境变量-->path 若为单文件模块,只需要将该文件放在系统环境变量下的任何目录中,在任何位置编写时均可导入. 方法一:下面以安装setuptools工具为例,从站点https://pypi.python.org/pypi/setuptools下载要使用的模块压缩文件.从CMD命令行下跳转到解压后所在的文件

python之MySQLdb模块

防伪码:忘情公子著 MySQLdb是用来通过python控制mysql数据库的一个模块. 在说这个模块之前,我们先来想一下在命令行模式下操作mysql数据库的步骤,一般来说分为三步: 1.连接数据库: 2.操作数据库(通过sql语句): 3.断开数据库连接 按此思路可知,python中的MySQLdb也是需要经过这三个步骤的,只不过不是在命令行模式下手工执行而已. 要想使用MySQLdb必须保证系统中有安装MySQL-python这个软件. 本篇文章主要是讲MySQLdb模块的使用,至于安装的步