簡體   English   中英

讀取文件到標准輸出扭曲

[英]Reading file to stdout with twisted

我們如何讀取文件(非阻塞)並將其打印到標准輸出(仍然非阻塞)? 這是我能想到的最簡單的方法,但會讓您感到必須有更好的方法。 暴露一些LineReceiver的東西(例如逐行修改)的功能將更為可取。

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()

這是Twisted的弱點。 異步文件I / O很難做到,並且做“正確”可能是不可能的。 有一張票已經開放很長時間了: https : //twistedmatrix.com/trac/ticket/3983 ,您可能會找到一個繼續進行討論的有用地方。

您正在使用的慣用法肯定是我們當前提供的最接近正確的用法。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM