如何处理 python 中的重音字符?

How to handle accented chars in python?

我知道有很多关于它的 material,但我无法找到解决问题的方法。

我将这段文字写在一个 txt 文件中,我必须对其进行操作等,它包含很多重音字符。由于某种原因,我无法正确管理它们。这是我的代码:

file = open ('parsed.txt', 'w', encoding = 'latin1')
file.write('ààààà')

这很好用。

但我也需要使这项工作正常进行:

with open('input.txt', 'r', encoding = 'latin1') as f:
    string = f.read()
    or_array = string.splitlines()
    new_array = []
    for line in or_array:
        new = (line[13:]).strip()
        print(new)
        new_array.append(new)
    new_string = ''
    for lin in new_array:
        new_string += lin
        new_string += ' '
    f_n = open('parsed.txt', 'w', encoding = 'latin1')
    f_n.write(new_string)

该代码有什么问题?

输入:

00:00:06.49    ciaò
00:00:20.665     Questa è una provà
00:00:44.157     èè   aa ò à ùù ù
00:00:44.157       

输出:

ciaò Questa è una provàèè   aa ò à ùù ù  

谢谢。

如果 input.txt 的内容实际上在 ISO-8859-1 中,则对我有用。如果它是 UTF-8,那么您会得到不正确的结果。换句话说,当我 copy/paste 你的输入时,我得到一个内容为 UTF-8 的文件。如果我这样做 iconv -f utf-8 -t L1 < utf8.txt > input.txt 那么你的程序工作正常。

顺便说一下,您的程序不是惯用的 python,并且在大输入时效率会非常低。