簡體   English   中英

Python read()適用於UTF-8,但readlines()“不”

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM