使用 Python 删除变音符

Removing diacritical marks using Python

我有几个文本文件包含带有变音符号的字符,例如 èáô 等。我想用 eao

替换这些字符

如何在 Python 中实现此目的?感谢您的帮助!

尝试使用 unidecode(您可能需要安装它)。

>>> from unidecode import unidecode
>>> s = u"é"
>>> unidecode(s)
'e'

您可以执行的操作示例:

 accented_string = u'Málaga'
`enter code here`# accented_string is of type 'unicode'
 import unidecode
 unaccented_string = unidecode.unidecode(accented_string)
 # unaccented_string contains 'Malaga'and is of type 'str'

与您的问题非常相似的示例。检查这个: What is the best way to remove accents in a Python unicode string?

在Python 3中,你只需要使用unidecode包。它适用于小写和大写字母。

安装包:(根据您的系统和设置,您可能需要使用 pip3 而不是 pip

$ pip install unidecode

然后使用如下:

from unidecode import unidecode

text = ["ÉPÍU", "Naïve Café", "EL NIÑO"]

text1 = [unidecode(s) for s in text]
print(text1)
# ['EPIU', 'Naive Cafe', 'EL NINO']

text2 = [unidecode(s.lower()) for s in text]
print(text2)
# ['epiu', 'naive cafe', 'el nino']