2009-08-14 22 views
1

问:BytesIO与Python V2.5

我如何获得工作方式类似于StringIO的为Python 2.5字节流?

应用:

我转换PDF文本,但不希望将文件保存到硬盘上。

其他的想法:

我想我可以使用StringIO的,但没有模式参数(我猜“字符串”文本暗示模式)。

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

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

回答

4

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

+0

谢谢,我感觉有点此刻智障。 :-P – tgray 2009-08-14 18:00:11

+0

你知道为什么有一个单独的BytesIO在2.6中,如果StringIO做同样的事情? – tgray 2009-08-14 18:00:52

+0

向前兼容性 - 2.6意味着可以轻松过渡到3.0,所以某些3.0功能(例如'io'模块)已被回溯。 – 2009-08-14 18:02:22

2

如果你正在使用PDF,然后StringIO应该罚款,只要你留意文档:

的StringIO对象可以接受Unicode或8位字符串,但两者搅拌可能需要谨慎。如果同时使用这两个字符串,那么不能解释为7位ASCII(使用第8位)的8位字符串将在调用getvalue()时引发UnicodeError。

注意这是真正为cStringIO

不同于由StringIO的模块实现的存储器中的文件,那些由该模块提供的是不能够接受的不能被编码为纯Unicode字符串ASCII字符串。

查看完整的文档:

相关问题