Я пытаюсь проанализировать файл, закодированный в utf-8
. Ни у одной операции нет проблем, кроме записи в файл (или, по крайней мере, я так думаю). Ниже приведен минимальный рабочий пример:
from lxml import etree
parser = etree.HTMLParser()
tree = etree.parse('example.txt', parser)
tree.write('aaaaaaaaaaaaaaaaa.html')
example.txt:
<html>
<body>
<invalid html here/>
<interesting attrib1="yes">
<group>
<line>
δεδομένα1
</line>
</group>
<group>
<line>
δεδομένα2
</line>
</group>
<group>
<line>
δεδομένα3
</line>
</group>
</interesting>
</body>
</html>
Мне уже известен аналогичный предыдущий вопрос , но я не мог решить проблему ни без указания выходной кодировки, ни с использованием utf8
или iso-8859-7
.
Я пришел к выводу, что файл находится в utf8
, так как он правильно отображается в Chrome при выборе этой кодировки. Мой редактор (Кейт) соглашается.
Я не получаю ошибку времени выполнения, но вывод не такой, как хотелось бы.
Пример вывода с tree.write('aaaaaaaaaaaaaaaaa.html', encoding='utf-8')
:
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
<html><body>
<invalid html="" here=""/><interesting attrib1="yes"><group><line>
δεδομÎνα1
</line></group><group><line>
δεδομÎνα2
</line></group><group><line>
δεδομÎνα3
</line></group></interesting></body></html>