python 队列单线程写入文本
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python 队列单线程写入文本相关的知识,希望对你有一定的参考价值。
# 把queue队列里面的内容循环取出来写到文件,单个线程去操作
class WriteFileThread(threading.Thread):
def __init__(self, queue):
threading.Thread.__init__(self)
self.queue = queue
def run(self):
output = codecs.open('result.txt', 'w')
emptyCount = 0
while True:
if emptyCount > 20:
print '连续20次没有数据可获取,自动结束队列了'
break
# 如果队列为空,标记为空
if (self.queue.empty()):
emptyCount += 1 # 为空次数加1
print "队列为空,第%s次休息,2秒再检查" % emptyCount
time.sleep(2) # 休息2秒
else:
emptyCount = 0 # 只要队列不是空的,就重置这个等待次数,以防断断续续导致提前退出
result = self.queue.get()
print '从队列获取到结果:' + result
output.write(result + "\r\n") # 从队列里面读取出来的结果直接写到文件里面
# self.queue.task_done()
self.queue.task_done()
print "结束任务,写入文件关闭 At 【%s】" % time.strftime('%Y-%m-%d %H:%M:%S', time.localtime(time.time()))
output.close()
# 来自 <http://www.lingdonge.com/coding/4166.html>
以上是关于python 队列单线程写入文本的主要内容,如果未能解决你的问题,请参考以下文章
练习题,使用多线程编写一个简单的文本处理工具
单线程在python中写入文件
利用双缓冲队列来减少锁的竞争
Python进阶第二篇多线程消息队列queue
多消费者单生产者队列
Python求索之路9——IO&队列&缓存