提问人:philgiese 提问时间:1/10/2012 更新时间:4/9/2020 访问量:13151
如何在 Python 中使用 BufferedWriter?
How to use a BufferedWriter in Python?
问:
我面临以下问题:我正在尝试为供应链实现模拟器。这些将产生大量 EPCIS 事件(发生在 RFID 读取器上的事件)。然后,应将这些事件写入 csv 文件,以便将它们加载到任何数据库中并对其运行分析算法。
模拟器是使用 python 实现的,工作正常。我现在尝试做的是缓冲地将事件写入文件,以减少访问磁盘所需的时间。浏览 python 文档时,我偶然发现了 io。BufferedWriter,这听起来和我一直在找的东西一模一样。无论如何,我不能完全让它工作。
这是我到目前为止所做的。我实现了我的类,该类继承自 RawIOBase 并管理文件句柄。当它被实例化时,它将创建一个 ,作为参数(这已经是一个问题了吗?CsvWriter
BufferedWriter
raw
class CsvWriter(AbstractWriter):
def __init__(self, filename):
self.filename = filename
self.file = self.openFile()
self.buffer = BufferedWriter(self, settings.WRITE_THRESHOLD)
当我知道要写一些我称之为缓冲的东西时,它看起来像这样:write_buffered
def write_buffered(self, data_dict):
self.buffer.write(b';'.join(map(str, data_dict.values())) + '\n')
(正如我所想的)需要在类本身上实现的实际方法如下所示:write
CsvWriter
def write(self, data):
if self.file.closed:
self.file = self.openFile()
return self.file.write(data)
问题是,当我尝试运行模拟器时,出现以下错误:
IOError: raw write() returned invalid length -1 (should have been between 0 and 78)
你们中有人对我有什么线索可以解决这个问题吗?
答: 暂无答案
评论
open
open(...)
Buffered{Reader,Writer}
open