Я работал над способами сглаживания текста в ascii. Итак à → a и - → n и т.д.
unidecode
был фантастическим для этого.
# -*- coding: utf-8 -*-
from unidecode import unidecode
print(unidecode(u"ā, ī, ū, ś, ñ"))
print(unidecode(u"Estado de São Paulo"))
Выдает:
a, i, u, s, n
Estado de Sao Paulo
Однако я не могу дублировать этот результат с данными из входного файла.
Содержимое файла test.txt:
ā, ī, ū, ś, ñ
Estado de São Paulo
# -*- coding: utf-8 -*-
from unidecode import unidecode
with open("test.txt", 'r') as inf:
for line in inf:
print unidecode(line.strip())
Выдает:
A, A<<, A<<, A, A+-
Estado de SAPSo Paulo
и
RuntimeWarning: Аргумент не является объектом unicode. Передача закодированной строки, скорее всего, приведет к неожиданным результатам.
Вопрос. Как я могу прочитать эти строки как unicode, чтобы передать их в unidecode
?