【发布时间】:2009-09-02 15:03:03
【问题描述】:
我编写了一个缓冲区类,它提供了一个类似文件的接口,其中包含read、write、seek、tell、flush 方法到内存中的简单字符串。当然它是不完整的(例如我没有写readline)。它的目的是由来自某些外部数据源的后台线程填充,但让用户将其视为文件。我希望它包含相对少量的数据(最大可能 50K)
有没有比从头开始编写更好的方法来做到这一点?
【问题讨论】:
我编写了一个缓冲区类,它提供了一个类似文件的接口,其中包含read、write、seek、tell、flush 方法到内存中的简单字符串。当然它是不完整的(例如我没有写readline)。它的目的是由来自某些外部数据源的后台线程填充,但让用户将其视为文件。我希望它包含相对少量的数据(最大可能 50K)
有没有比从头开始编写更好的方法来做到这一点?
【问题讨论】:
您可以使用标准 Python 模块 StringIO 或 cStringIO 来获取实现 file interface 的内存缓冲区。
cStringIO 是用 C 语言实现的,而且速度会更快,因此您应该尽可能使用该版本。
如果您使用的是 Python 3,则应使用 io.StringIO 而不是 StringIO 和 io.BytesIO 而不是 cStringIO。
【讨论】:
我想你可能正在寻找StringIO。
【讨论】: