Python read()与UTF-8配合使用,但readlines()不起作用;不';";

Python read()与UTF-8配合使用,但readlines()不起作用;不';";,python,utf-8,io,Python,Utf 8,Io,因此,我正在处理一个(巨大的)UTF-8编码文件。我对它做的第一件事是使用File对象readlines()方法在列表中获取它的行。但是,当我使用print命令进行调试时,我会得到一些东西,例如,\xc3等 这里有一个很小的例子,它复制了我的问题;我创建了一个只包含文本“Clara Martínez”的t.txt文件 f=open(“t.txt”、“r”) s=f.read() 印刷品 克拉拉·马丁内斯 #但是,如果我执行以下操作 行=f.读行() 对于l in行: 打印l ['Clara Ma

因此,我正在处理一个(巨大的)UTF-8编码文件。我对它做的第一件事是使用File对象readlines()方法在列表中获取它的行。但是,当我使用print命令进行调试时,我会得到一些东西,例如,\xc3等

这里有一个很小的例子,它复制了我的问题;我创建了一个只包含文本“Clara Martínez”的t.txt文件

f=open(“t.txt”、“r”)
s=f.read()
印刷品
克拉拉·马丁内斯
#但是,如果我执行以下操作
行=f.读行()
对于l in行:
打印l
['Clara Mart\xc3\xadnez']
#不过写得很好!
f2=打开(“t2.txt”,“w”)
对于l in行:
f2.写入(l)
f2.关闭()
f1.关闭()
然后我打开“t2.txt”,字符串是正确的,即:Clara Martínez。 有没有办法让readlines()像read()一样工作?

您声称:

lines = f.readlines()
for l in lines:
    print l
这将导致:

['Clara Mart\xc3\xadnez']
这不是真的,不会的。我认为您在代码中犯了一个错误,并编写了以下代码:

lines = f.readlines()
for l in lines:
    print lines
该代码将给出您所说的结果,假设该文件只包含一行文字
'Clara Mart\xc3\xadnez'

您声称:

lines = f.readlines()
for l in lines:
    print l
这将导致:

['Clara Mart\xc3\xadnez']
这不是真的,不会的。我认为您在代码中犯了一个错误,并编写了以下代码:

lines = f.readlines()
for l in lines:
    print lines

该代码将给出您所说的结果,假设该文件只包含一行文本
'Clara Mart\xc3\xadnez'

如果我告诉您
\xc3\xad
í
,您可能应该使用
io.open
编码
。如果我告诉你
\xc3\xad
I
,你可能应该使用
io.open
encoding='utf-8'
。这将以正确编码的Unicode格式读取文件,而不是一系列可能按预期方式打印或不按预期方式打印的字节。这是对问题公式的吹毛求疵,无助于找出答案。这个答案应该是一个评论,这只是对问题的表述的一个挑剔,无助于找出答案。这个答案应该是一个评论。