线程时打印错误(Python)

时间:2013-09-30 09:25:52

标签: python printing

我有一些问题:

有大约100个主题,他们做了一些,但在这里做了坏蛋:

print color("HEY - Some text ... :DDD blabla - "+strftime("%X", gmtime()),fg=85)

Please, look at this image

我该如何解决?或者为什么会这样?

2 个答案:

答案 0 :(得分:1)

如果您只对格式感兴趣,那么我会在您的打印声明中添加换行符。

print color("HEY - Some text ... :DDD blabla - "+strftime("%X", gmtime())+"\n",fg=85)

答案 1 :(得分:0)

不要认为可以在线程中解决这个问题。您需要一个将控制输出的线程,您的线程将向此线程发送消息,以便线程处理所有打印。

您可以使用Queue对象(下面是文档中经过修改的示例)

from threading import Thread
from Queue import Queue
from time import gmtime, strftime

def worker():
    while True:
        item = q.get()
        print item
        q.task_done()

q = Queue()
for i in range(1):
     t = Thread(target=worker)
     t.daemon = True
     t.start()

# ---- Somewhere in your threads
    q.put( color("HEY - Some text ... :DDD blabla - "+strftime("%X", gmtime()),fg=85) )
# -----
q.join()