Python 2.7:线程安全的打印

7 投票
2 回答
6166 浏览
提问于 2025-04-17 04:54

我看到过一个类似的帖子,在这里,不过那个帖子是关于Python 2.6的,我希望能有更简单的方法。

从讨论中看,最好的办法似乎是把我所有的print语句都换成sys.stdout.write(s + '\n')?

我希望能有一个更好的方法,这样我还能继续使用print。

2 个回答

0

我发现下面的代码在多线程和多进程的环境中都能正常工作,真的很简单:

def sprint(content):
    print("{0}~{1}\r".format(str(datetime.datetime.now()), content))
13
from __future__ import print_function
print = lambda x: sys.stdout.write("%s\n" % x)

这是一个简单又便宜的解决办法。

撰写回答