所以,我正在使用(巨大的)UTF-8编码文件。我用它做的第一件事就是使用File Object readlines()方法在列表中获取它的行。但是,当我使用print命令进行调试时,我会得到类似的东西,例如 \ xc3 等。
这是一个很小的例子,可以复制我的问题;我创建了一个t.txt文件,其中只包含文本“ClaraMartínez”
f = open("t.txt", "r")
s = f.read()
print s
Clara Martínez
#If I do the following however
lines = f.readlines()
for l in lines:
print l
['Clara Mart\xc3\xadnez']
#write however works fine!
f2 = open("t2.txt", "w")
for l in lines:
f2.write(l)
f2.close()
f1.close()
然后我打开“t2.txt”,字符串是正确的,即:ClaraMartínez。 有没有办法“make”readlines()作为read()工作?
答案 0 :(得分:5)
你声称这个:
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'
。