2017-05-05 57 views
2
handle = open('full path/file name.txt') 

file = handle.read() 
print file 

for line in handle: 
    print line 
  1. 打印文件打印正確
  2. 打印線不返回任何東西。沒有錯誤報告。我在這裏做錯了什麼?
+4

工作,你以後'.read'你的文件」 re已經在最後,所以'handle'中沒有更多'line's。 – jonrsharpe

回答

0

您需要從讀取的數據寫入,句柄是一個文件對象。

for line in file: 
    print(line) 
+0

這會給每個*字符*,而不是每一行。 o請注意,triple-backtick代碼隔離用於GitHub-flavor markdown,它不支持。 – jonrsharpe

+0

file = handle.readlines()...我沒有完全閱讀人員代碼。好的產品 –

1

一旦你讀取文件(handle.read())文件到達終點,所以,試圖再次重複它的時候,它沒有任何關係提供了。

如果要再次使用使用它的內容,你可以將它們存儲在第一讀取和使用存儲的內容每一次,或重置使用文件的開頭尋求:

handle.seek(0) 
0

的首先要注意的是,你現在的for循環不會讓你找到你想要的行爲。您需要有file = handle.readlines()而不是.read()。否則,它會將每個字符打印在新行中,而不是每行。 (請注意,handle.readlines()返回一個列表,所以打印(文件)行現在將打印該列表。

還請注意,使用.read()文件看完之後,你就需要運行handle.seek(0)能夠從打印重新備案,否則您將不會收到輸出,作爲「讀者」是在文件的結尾。

+1

*「你應該從文件中讀取。」* - 否,因爲(儘管名稱)它不是文件,它是*內容*作爲字符串。你*可以*遍歷文件句柄。 – jonrsharpe

+0

這是真的。編輯,謝謝! – Windmill

0

下面的代碼應爲2.7

handle = open('full path/file name.txt') file = handle.read() 
handle.seek(0) print file 

for line in handle: 
    print line