Python2.7:打印线程安全

Python2.7:打印线程安全,python,thread-safety,Python,Thread Safety,我看过一篇类似的文章,但是它提到了Python2.6,我希望有一种更简单的方法 从读取线程来看,最好的方法似乎是用sys.stdout.write(s+'\n')替换我所有的print语句 我希望有一种更好的方式让我仍然可以使用打印 from __future__ import print_function print = lambda x: sys.stdout.write("%s\n" % x) 是一种非常便宜且肮脏的黑客行为。我发现以下方法适用于多线程和多进程环境,非常简单: def s

我看过一篇类似的文章,但是它提到了Python2.6,我希望有一种更简单的方法

从读取线程来看,最好的方法似乎是用sys.stdout.write(s+'\n')替换我所有的print语句

我希望有一种更好的方式让我仍然可以使用打印

from __future__ import print_function
print = lambda x: sys.stdout.write("%s\n" % x)

是一种非常便宜且肮脏的黑客行为。

我发现以下方法适用于多线程和多进程环境,非常简单:

def sprint(content):
    print("{0}~{1}\r".format(str(datetime.datetime.now()), content))

令人惊叹的。总是将其添加到python文件中有什么缺点吗?(即,为什么不始终具有线程安全性)它无法处理。正如我所说,它使输出总是无缓冲的。这是一种廉价而肮脏的黑客行为。这不是一种“正确”的方法,但它完成了任务。您可以在lambda的末尾添加sys.stdout.flush()。它是否有文档记录在
sys.stdout.write
是线程安全的?