[英]Python read() works with UTF-8 but readlines() “doesn't”
因此,我正在使用(巨大)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。 有什么辦法可以使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'
代碼,該代碼將提供您所說的結果。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.