2011-10-24 44 views
6

我见过类似的帖子here但是它指的是Python 2.6,我希望有一个更简单的方法。Python 2.7:打印线程安全

从阅读线程看来,最好的方法是用sys.stdout.write(s +'\ n')替换所有的打印语句。

我希望有,让我仍然使用打印

回答

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

一个更好的方式是一个很好的廉价和肮脏的黑客。

+0

真棒。总是把它添加到python文件有什么缺点吗? (即为什么不总是有线程安全) – Setheron

+0

它不处理['print()关键字参数'](http://docs.python.org/library/functions.html#print)。它也使输出始终无缓冲。 –

+0

但这是最简单的赌注吗? – Setheron

0

我发现,无论是多线程的以下工作&多进程环境中,很简单:

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