2011-10-24 12 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))