[英]python readline strange behaviour
文本文件dummy.txt包含以下幾行:
Line 1
Line 2
Line 3
以下程序應將每行追加到行列表中。
f1 = open('c:\Python33\dummy.txt')
lines = []
for line in f1:
lines.append(f1.readline())
f1.close()
print(lines)
但是它的輸出是:
['第2行\\ n','']
當我使用IDLE時,打開文件,然后輸入lines.append(f1.readline())
三次,然后打印行,我便得到了想要的內容,即['Line 1\\n', 'Line 2\\n', 'Line 3\\n']
。
該程序出了什么問題?
open
將返回一個生成器,您可以正確地獲取下一行,但是您需要兩次獲取它以進行循環。 所以這就是您正在做的...您在循環中調用f1
,然后在附加f1
中再次調用它,拉出第二行。 最后,您在循環標題中再次調用第三行,然后在ap中再次調用它,您將獲得文件的結尾。 結束了發電機。
做這個:
f1 = open('c:\Python33\dummy.txt')
lines = []
for line in f1:
lines.append(line)
f1.close()
print(lines)
要么
lines = [line for line in f1]
要么
lines = f1.readlines()
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.