我有一个在后台运行的进程,我正在捕获标准输出。
在读取流process.stdout.readline()
的每一行后,我做了一个耗时的操作stdout_handler(current_time, stdout)
(几毫秒)。这必须逐行完成。
如果我使用stdout_handler
我的输出被截断大约250K ......但是,如果我删除stdout_handler
我有完整的输出(~300K)......
代码如下。
process = Popen(args, bufsize=1, stdout=PIPE, stderr=PIPE,
cwd=self.workdir, universal_newlines=True)
rlist = [process.stdout, process.stderr]
while process.poll() is None:
ready, _, _ = select.select(rlist, [], [])
current_time = now()
if process.stdout in ready:
stdout = process.stdout.readline()
if stdout != '':
stdout_handler(current_time, stdout)
知道如何解决这个问题吗?