【发布时间】:2021-03-26 18:52:31
【问题描述】:
对于上下文,我正在使用多处理并运行多个子进程,这些子进程可能会在标准输出上打印它们正在执行的操作的日志。由于它们可能同时打印,导致日志非常混乱,我使用的是
from contextlib import redirect_stdout
for task in task_list:
with redirect_stdout(buffer):
(do some stuff)
with lock_stdout:
print(buffer)
结构。这样,他们只在完成任务后才打印,而且效果很好。现在,在某些特定条件下,我希望能够在标有“(做一些事情)”的上下文中在标准输出上打印一些东西,但我能够将任何东西打印到标准输出的唯一方法是通过使用警告,这很脏。有没有一种优雅的方法可以将 stdtout 重定向回 stdout 一段时间?
【问题讨论】:
标签: python python-3.x stdout python-multiprocessing