首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用双绞线读取文件到stdout

用双绞线读取文件到stdout
EN

Stack Overflow用户
提问于 2015-05-11 11:03:45
回答 1查看 575关注 0票数 7

如何读取文件(非阻塞)并将其打印到标准输出(仍然是非阻塞)?这是我能想到的最极端的方式,但它给你留下了一种感觉,那就是一定有更好的方法。公开一些类似LineReceiver的逐行修改功能将更加可取。

代码语言:javascript
复制
from twisted.internet import stdio, protocol
from twisted.protocols.basic import FileSender
from twisted.internet import reactor

class FileReader(protocol.Protocol):
    def connectionMade(self):
        fl = open('myflie.txt', 'rb')
        d = FileSender().beginFileTransfer(fl, self.transport)
        d.addBoth(fl.close)
        d.addBoth(lambda _: reactor.stop())

stdio.StandardIO(FileReader())
reactor.run()
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-05-11 18:53:11

这是Twisted的弱点。异步文件I/O是很难做到的,可能不可能做到“正确”。有一张票已经开了很长时间了:https://twistedmatrix.com/trac/ticket/3983,您可能会找到一个有用的地方来继续这个讨论。

你在那里使用的成语绝对是我们目前提供的最接近纠正的。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30166008

复制
相关文章

相似问题

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