Я хочу заменить из большого документа все высокие символы юникода, такие как акцентированные Es, левые и правые кавычки и т.д., с "нормальными" аналогами в низком диапазоне, такими как обычный "E" и прямой кавычки. Мне нужно довольно часто выполнять это на очень большом документе. Я вижу пример этого в том, что, на мой взгляд, может быть perl: http://www.designmeme.com/mtplugins/lowdown.txt
Есть ли быстрый способ сделать это в Python без использования s.replace(...). replace (...). replace (...)...? Я пробовал это на нескольких символах для замены, и снятие документа стало очень медленным.
EDIT, моя версия кода unutbu, которая, похоже, не работает:
# -*- coding: iso-8859-15 -*-
import unidecode
def ascii_map():
data={}
for num in range(256):
h=num
filename='x{num:02x}'.format(num=num)
try:
mod = __import__('unidecode.'+filename,
fromlist=True)
except ImportError:
pass
else:
for l,val in enumerate(mod.data):
i=h<<8
i+=l
if i >= 0x80:
data[i]=unicode(val)
return data
if __name__=='__main__':
s = u'"fancy"fancy2'
print(s.translate(ascii_map()))