我正在寻找从大型文档中替换所有高 unicode 字符,例如重音 Es、左右引号等,以及低范围内的“正常”对应物,例如常规的“E”和直引号。我需要经常在一个非常大的文档上执行此操作。我在这里看到了一个我认为可能是 perl 的例子:http: //www.designmeme.com/mtplugins/lowdown.txt
在 Python 中是否有不使用 s.replace(...).replace(...).replace(...)... 的快速方法?我已经在几个字符上尝试了这个来替换,并且文档剥离变得非常慢。
编辑,我的 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()))