python - 如何共享多线程 python 脚本的标准输出?

标签 python multithreading

我正在编写一个有 5 个线程的脚本,我想为所有线程共享/重定向标准输出,以正确获取所有打印件。 我已尝试使用以下代码,但它不起作用,有人可以帮忙吗?

class Logwriter():
    def __init__(self):
        self.terminal = sys.stdout

    def write(self,message):
        lock = threading.Lock()
        lock.acquire()
        self.terminal.write(message)
        lock.release()

sys.stdout=Logwriter()

最佳答案

您还可以使用 python logging 而不是重定向 stdout(不会提供 stderr 的重定向)。模块。

然后你可以用 logging.info("message") 替换你的打印语句。

日志模块提供了很多可能性,比如打印哪个线程发布了一条消息等。

关于python - 如何共享多线程 python 脚本的标准输出?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31137458/

相关文章:

python - 为什么 matplotlib 使用plot()画线时会变慢?

python - 使用 Selenium 抓取 Google map 的网页使用了太多数据

python - 如何在 Tkinter 中创建带滚动条的 LabelFrame?

python - pandas - 根据条件添加列

c# - 从其他线程更改按钮颜色

Java - 并发修改异常

python - 如何使用同一字典的另一个键设置字典值

java - RejectedExecutionException 的原因是什么?

java - 如何以线程安全的方式在 JAX-RS 资源中使用 JerseyClient

java - Android - 线程会自行停止吗?