относительный поиск для io.StringIO в python3

Я пытаюсь реорганизовать пакет python 2 для использования с python-3.x. Пакет использует StringIO.StringIO в python 2 и в некоторой степени использует метод относительного поиска объекта с такими операторами, как flob.seek(-1, 1). К сожалению, метод seek соответствующего объекта io.StringIO в Python 3 не поддерживает относительный поиск, поэтому код вызывает

OSError: Can't do nonzero cur-relative seeks

при попытке выполнить этот оператор.

Каков наилучший способ рефакторинга модулей, содержащих эти вызовы, учитывая, что я хотел бы иметь возможность продолжать использовать функции, в которых они появляются, для файловых объектов, а также (объектов, полученных из) строк?


person Anaphory    schedule 14.11.2013    source источник


Ответы (1)


Поскольку строки в Python 2 переименовывает байты в Python 3, код должен использовать io.BytesIO в Python 3, который поддерживает относительный поиск.

person Ramchandra Apte    schedule 14.11.2013