我在写一个运行虚拟终端的Python程序。目前,我启动它,像这样:如何从Python中实时读取终端输出?
import pexpect, thread
def create_input(child, scrollers, textlength=80, height=12):
while 1:
newtext = child.readline()
print newtext
child = pexpect.spawn("bash", timeout=30000)
thread.start_new_thread(create_input,(child))
这工作,我可以通过child.send(command)
发送命令给它。但是,我只将整行作为输出。这意味着如果我启动Nano或Links之类的东西,我将不会收到任何输出,直到该过程完成。我也看不到我正在输入的内容,直到我按下回车键。有没有什么方法可以读取单个字符作为bash输出它们?
您需要将输出设置为“无缓冲”,因为此时它显示为“行缓冲”。 – chown
我该怎么做? – Skyler