首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >阻塞版本StringIO.readlines()

阻塞版本StringIO.readlines()
EN

Stack Overflow用户
提问于 2013-05-01 21:34:26
回答 1查看 449关注 0票数 2

有没有办法让StringIO.readlines()阻塞,直到流关闭或者通过write()使新数据可用?

我正在针对一个接口编写代码,该接口需要像对象一样的阻塞文件,并且在我向StringIO实例写入数据之前它会立即返回。使用initial_value参数也是不可取的,因为我需要使用中间结果。

或者,在python中有没有像fifo/stream这样的(文本)文件?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-05-01 23:16:57

如果你使用threads,那么你应该使用Queue。如果你使用其他的结构来进行线程间的通信,你肯定会遇到这样的麻烦,这将为你省去很多麻烦。

如果只需要readlines()write(),那么可以包装Queue

代码语言:javascript
复制
class QueueStream(object):
    def __init__(self):
        self._queue = Queue()

    def write(self, line):
        self._queue.put(line)

    def readlines(self):
        while True:
            item = self._queue.get()
            yield item
            self._queue.task_done()
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16319107

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档