В Python 3 файловые объекты, открытые в текстовом режиме, требуют, чтобы вы записали Unicode text.
Вы закодировали свой текст в байтах UTF-8, но объект-файл должен выполнять кодировку. Не кодируйте текст.
Вы можете получить то же поведение в Python 2, используя io.open()
function, а не встроенную функцию open()
. io
модуля в Python 2 является портировать новую инфраструктуру ввода/вывода, используемой в Python 3.
Если вам нужно написать полиглот кода (код Python, который работает как на Python 2 и Python 3), просто импортировать из io
:
import io
with io.open(filename, 'w', encoding='utf8') as fo:
fo.write(text.replace("'",""))
Питон 3 встроенных open()
функции точно такие же функции, как io.open()
.
Что такое «текст» –
@kasparg, он тоже не работает. Hitesh Dharamdasani, Это простые текстовые данные. –