【发布时间】:2018-09-24 07:52:53
【问题描述】:
我正在编写一个带有交互式控制台的多线程程序:
def console()
import readline
while True:
data = input()
do_whatever(data.split())
但是,我正在使用的库从不同的线程运行我的回调。回调需要打印到控制台。因此我想清除命令行,重新显示提示,重新显示命令行。
如果不重新实现readline,我该怎么做?
【问题讨论】:
-
您需要回调打印到 stdout/stderr 吗?一种快速而丑陋的技巧是打印许多“新行”来刷新整个屏幕。或根据操作系统执行“clear”或“cls”等系统命令。
-
我无法进行全屏刷新,因为我需要回滚缓冲区。此外,这并没有告诉我如何重写 readline 提示以及用户正在输入的任何内容。
-
您找到解决问题的方法了吗?一个开箱即用的解决方案可能是在您的程序周围使用
rlwrap,而不是使用 Python 中的 readline。
标签: python multithreading readline