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

Posted japhasiac

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python使用cmd模块构造命令行界面相关的知识,希望对你有一定的参考价值。

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

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

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

 

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

以上是关于Python使用cmd模块构造命令行界面的主要内容,如果未能解决你的问题,请参考以下文章

Windows系统中如何安装Python扩展模块

cmd命令行界面运行python脚本显示的中文不正确

为啥python运行不了?

如何在命令行里运行python脚本

python如何获取cmd命令框里的内容

《可爱的Python》读书笔记