3

我正在尝试重构一个 python 2 包以与 python-3.x 一起使用。该包StringIO.StringIO在 python 2 下使用,并使用了对象的相对查找方法,如flob.seek(-1, 1). 不幸的是, python 3中seek对应io.StringIO对象的方法不支持relative seeks,所以代码提出了

OSError: Can't do nonzero cur-relative seeks

尝试执行该语句时。

什么是重构包含这些调用的模块的最佳方法,因为我希望能够继续使用这些函数出现在文件对象以及(派生自的对象)字符串中?

4

1 回答 1

11

因为Python 2 中的字符串在 Python 3 中被重命名为字节,所以代码应该io.BytesIO在支持相对搜索的 Python 3 中使用。

于 2013-11-14T15:48:44.570 回答