2011-10-24 15 views
6

wątek Widziałem podobne stanowisko here jednak odnosi się do Pythona 2.6 i miałem nadzieję tam łatwiejszy sposób.Python 2.7: Wydruk bezpieczny

Czytając wątek wydaje się, że najlepszym sposobem jest po prostu wymienić wszystkie moje wypowiedzi drukowania z sys.stdout.write (s + „\ n”)?

ja ufałem nie było ładniejszy sposób, że pozwoliła mi nadal używać Wydrukuj

Odpowiedz

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

jest ładny i tani brudny Hack.

+0

niesamowite. Czy jest jakiś minus, aby zawsze dodawać to do pliku Pythona? (tzn. dlaczego nie zawsze ma zabezpieczenie wątków) – Setheron

+0

Nie obsługuje on argumentów '' print() '(http://docs.python.org/library/functions.html#print). Jak również sprawia, że ​​wyjście jest zawsze niebuforowane. –

+0

Ale jest to najłatwiejszy zakład? – Setheron

0

stwierdziliśmy, że następujące prace dotyczące zarówno wielowątkowego & środowisku wielu procesów, bardzo prosta:

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