У меня есть кодовая база Python, созданная для Python 3, которая использует стиль Python 3 open () с параметром кодирования:
https://github.com/miohtama/vvv/blob/master/vvv/textlineplugin.py#L47
with open(fname, "rt", encoding="utf-8") as f:
Теперь я хотел бы перенести этот код в Python 2.x, чтобы у меня была кодовая база, которая работает с Python 2 и Python 3.
Какова рекомендуемая стратегия для обхода open()
различий и отсутствия параметра кодирования?
Могу ли я иметь open()
обработчик файлов в стиле Python 3, который передает потоковые строки, чтобы он работал как Python 2 open()
?
источник
думаю
стоит сделать.
источник
from io import open
в Python 3? Я не забочусь о производительности в настоящее время.Вот один из способов:
источник
f
Это может сделать трюк:
Тогда вы можете сохранить свой код в стиле python3.
Обратите внимание , что некоторые интерфейсы нравится
newline
,closefd
,opener
не работаютисточник
pass
.Если вы используете
six
, вы можете попробовать это, используя последний API Python 3 и может работать как в Python 2/3:А отказ от поддержки Python 2 - это просто удаление всего, что связано с
six
.источник