使用Python去除重音符号

3
我有几个文本文件,其中包含带有变音符号的字符,例如 è, á, ô 等等。我想用 e, a, o 等等替换这些字符。请问怎样在Python中实现呢?谢谢帮助!

1
text.replace('é','e') - user955340
将您的替换项放入字典中,打开文本文件并使用 https://dev59.com/5HE95IYBdhLWcg3wOLU1 中的答案进行替换。 - Jonathan Scholbach
2
这个问题应该被关闭,因为在StackOverflow上已经有了答案。如果是关于如何打开文本文件或如何替换字符串的问题,那么已经有足够的答案了。这就是为什么我给出-1的原因。 - Jonathan Scholbach
你应该使用完整的Unicode同形异义词表,以确保不会漏掉任何一个字符。该表可以从以下答案中获取:https://dev59.com/_Wkx5IYBdhLWcg3wA_xS - AntiMatterDynamite
3个回答

10

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

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

2

以下是您可以做的示例:

 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'

您的问题有一个非常相似的例子,请查看: 如何在Python Unicode字符串中最好地去除重音符号?


1
在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']

这不是 2018年1月的答案 的重复吗? - Chris

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接