我想替换一个大文档中的所有高Unicode字符,例如重音E、左右引号等,用低范围内的“正常”对应字符,例如普通的'E'和直引号。我需要经常在一个非常大的文档上执行此操作。我在这里看到了一个示例,可能是perl:http://www.designmeme.com/mtplugins/lowdown.txt
有没有一种快速的方法在Python中完成这个任务,而不使用s.replace(...).replace(...).replace(...)...? 我尝试了只替换几个字符,但文档剥离变得非常缓慢。
编辑,我的版本unutbu的代码似乎不起作用:
编辑,我的版本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()))