gpt4 book ai didi

Python:用 unidecode 解决 unicode hell

转载 作者:太空狗 更新时间:2023-10-29 17:47:17 28 4
gpt4 key购买 nike

我一直在研究将文本扁平化为 ascii 的方法。所以 ā -> añ -> n

unidecode 对此非常出色。

# -*- coding: utf-8 -*-
from unidecode import unidecode
print(unidecode(u"ā, ī, ū, ś, ñ"))
print(unidecode(u"Estado de São Paulo"))

产生:

a, i, u, s, n
Estado de Sao Paulo

但是,我无法使用输入文件中的数据复制此结果。

test.txt文件内容:

ā, ī, ū, ś, ñ
Estado de São Paulo

# -*- coding: utf-8 -*-
from unidecode import unidecode
with open("test.txt", 'r') as inf:
for line in inf:
print unidecode(line.strip())

产生:

A, A<<, A<<, A, A+-
Estado de SAPSo Paulo

和:

RuntimeWarning: Argument is not an unicode object. Passing an encoded string will likely have unexpected results.

问题:如何以 unicode 格式读取这些行,以便将它们传递给 unidecode

最佳答案

使用codecs.open

with codecs.open("test.txt", 'r', 'utf-8') as inf:

编辑:以上内容适用于 Python 2.x。对于 Python 3,您不需要使用 codecs,编码参数已添加到常规 open

with open("test.txt", 'r', encoding='utf-8') as inf:

关于Python:用 unidecode 解决 unicode hell ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22540383/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com