簡體   English   中英

python readline奇怪的行為

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

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