如何处理 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,并且在大输入时效率会非常低。
我知道有很多关于它的 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,并且在大输入时效率会非常低。