2011-10-24 39 views
6

Tôi đã nhìn thấy một bài viết tương tự here tuy nhiên nó đề cập đến Python 2.6 và tôi đã hy vọng có một cách dễ dàng hơn.Python 2.7: In chủ đề an toàn

Từ đọc chuỗi có vẻ như cách tốt nhất là chỉ thay thế tất cả các câu lệnh in của tôi bằng sys.stdout.write (s + '\ n')?

Tôi đã hy vọng có một cách đẹp hơn mà cho phép tôi vẫn sử dụng in

Trả lời

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

Là một đẹp rẻ và bẩn hack.

+0

tuyệt vời. Có bất kỳ nhược điểm để luôn luôn thêm này vào một tập tin python? (tức là tại sao không phải lúc nào cũng có an toàn luồng) – Setheron

+0

Nó không xử lý các đối số từ khóa ['print()'] (http://docs.python.org/library/functions.html#print). Cũng như nó làm cho đầu ra luôn luôn unbuffered. –

+0

Nhưng đây là cược dễ nhất? – Setheron

0

tôi thấy rằng các công trình sau đây trên cả hai multi-thread & đa quá trình môi trường, rất đơn giản:

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