【问题标题】:python file-like buffer objectpython 类文件缓冲区对象
【发布时间】:2009-09-02 15:03:03
【问题描述】:

我编写了一个缓冲区类,它提供了一个类似文件的接口,其中包含readwriteseektellflush 方法到内存中的简单字符串。当然它是不完整的(例如我没有写readline)。它的目的是由来自某些外部数据源的后台线程填充,但让用户将其视为文件。我希望它包含相对少量的数据(最大可能 50K)

有没有比从头开始编写更好的方法来做到这一点?

【问题讨论】:

    标签: python io buffer


    【解决方案1】:

    您可以使用标准 Python 模块 StringIOcStringIO 来获取实现 file interface 的内存缓冲区。

    cStringIO 是用 C 语言实现的,而且速度会更快,因此您应该尽可能使用该版本。

    如果您使用的是 Python 3,则应使用 io.StringIO 而不是 StringIOio.BytesIO 而不是 cStringIO

    【讨论】:

    • 我想这就是我要找的。但是这些类是线程安全的吗?我将有单独的读者和作者线程。
    • Pythons GIL 意味着线程安全不太可能成为问题,因为两个线程不会同时执行。
    • 这并不是线程安全的。如果是这样,那么我们就不需要单核处理器上的线程安全了。
    • 感谢@Sean1708 提供including Python3 注释:)
    【解决方案2】:

    我想你可能正在寻找StringIO

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-05-28
      • 1970-01-01
      • 2014-07-25
      • 1970-01-01
      • 2021-08-06
      • 2020-07-13
      • 2012-04-24
      相关资源
      最近更新 更多