BytesIO与python v2.5

时间:2009-08-14 17:54:01

标签: python stringio bytesio

问题:

如何获得类似StringIO for Python 2.5的字节流?

应用

我正在将PDF转换为文本,但不想将文件保存到硬盘。

其他想法:

我想我可以使用StringIO,但是没有模式参数(我猜“字符串”意味着文本模式)。

显然io.BytesIO类是v2.6中的新类,所以这对我也不起作用。

我有一个tempfile模块的解决方案,但我想避免对硬盘进行任何读/写操作。

2 个答案:

答案 0 :(得分:4)

在Python 2.x中,“string”表示“bytes”,“unicode”表示“string”。您应该使用StringIOcStringIO模块。模式取决于您传入的数据类型作为缓冲区参数。

答案 1 :(得分:2)

如果您正在使用PDF,那么StringIO只要您注意文档就可以了:

  

StringIO对象可以接受Unicode或8位字符串,但混合两者可能需要一些小心。如果两者都使用,那么无法解释为7位ASCII(使用第8位)的8位字符串将在调用getvalue()时引发UnicodeError。

请注意,对于cStringIO

为真
  

与StringIO模块实现的内存文件不同,此模块提供的内存文件无法接受无法编码为纯ASCII字符串的Unicode字符串。

请参阅以下完整文档: