2011-10-24 5 views
6

J'ai vu un poste similaire here mais il se réfère à Python 2.6 et j'espérais qu'il y avait un moyen plus facile. A la lecture du thread, il semble que le meilleur moyen est de simplement remplacer toutes mes instructions print par sys.stdout.write (s + '\ n')?Python 2.7: Impression thread sûr

J'espérais qu'il y avait une façon plus agréable qui m'a permis d'utiliser encore imprimer

Répondre

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

est un joli bidouille pas cher et sale.

+0

impressionnant. Y at-il un inconvénient à toujours ajouter ceci à un fichier python? (c'est-à-dire pourquoi ne pas avoir toujours la sécurité des threads) – Setheron

+0

Il ne gère pas les arguments des mots-clés ['print()] (http://docs.python.org/library/functions.html#print). De plus, cela rend la sortie non tamponnée. –

+0

Mais c'est le pari le plus facile? – Setheron

0

Je trouve que les travaux suivants sur multi-thread & environnement multi-processus, très simple:

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