我如何在python中同时在循环下方打印一些字符串

时间:2012-08-28 14:42:18

标签: python

我想同时做多个过程, 例如,我想在正在循环的正下方打印一些字符串......

import time
from threading import Thread
print 'top'
def foo():   
  for i in range(1,10):
    sys.stdout.write(str('\r%s\r'%i))
    sys.stdout.flush()
    time.sleep(1)
timer = Thread(target=foo)
timer.start()
'''bottom'

我想上面的代码看起来像这样

top
'''looping counter is underway'''
bottom

2 个答案:

答案 0 :(得分:1)

听起来你想阻止你的主线程直到你的工作线程完成。为此你需要join function

import time
import sys
from threading import Thread
print 'top'
def foo():   
  for i in range(1,10):
    sys.stdout.write(str('\r%s\r'%i))
    sys.stdout.flush()
    time.sleep(1)
timer = Thread(target=foo)
timer.start()
timer.join()
print 'bottom'

答案 1 :(得分:0)

好的,请阅读您最喜欢的线程文档。

你需要加入()线程

timer.join()

http://docs.python.org/library/threading.html#module-threading