2017-02-13 31 views
1

當我做了一個while循環,我想我的代碼要經過同一個文件多次:如何通過文件多次去蟒蛇

file = open('anyfile.txt', 'r') 
x = 0 
while x<5: 
    for line in file: 
     #does stuff 
    x = x + 1 

我的代碼是不同的,所以我給了一個比較簡單的一段代碼。每當我這樣做時,while循環就會執行一次,然後通過while循環直到停止,只通過一次文件。 如何讓我的代碼多次運行該文件?原因是因爲在我的實際代碼中,我在每個循環中編輯他的文本文件。請有人可以幫忙嗎?

+0

您必須在每次迭代時倒帶文件。 –

+0

'file'是迭代器 – haifzhan

+0

所以我基本上必須在聲明while循環後聲明file = open('anyfile.txt','r')? – user6842389

回答

2

你只能迭代迭代器file一次,那麼它將不會再產生。您可以使用with open(filename)讀取該文件每次while循環Python中

while x < 5: 
    with open('anyfile.txt') as inputs: 
     for line in inputs: 
      # do you work here 
    x = x +1 
+0

非常感謝你,說實話,我很愚蠢,沒有注意到我的問題的簡單性,歡呼聲 – user6842389

1

File對象是迭代器,一旦你讀,直到EOF一次,迭代器被耗盡的運行時間。

如需要,您可以讀取文件到列表中,這樣你就可以在它迭代多次:

file = open('anyfile.txt', 'r').readlines() 
x = 0 
while x < 5: 
    for line in file: 
     # does stuff 
    x = x + 1 
file.close() 
0

您可以使用seek設置文件指針回到開始:

file = open('anyfile.txt', 'r') 
x = 0 
while x < 5: 
    file.seek(0) # Reset file pointer to start 
    for line in file: 
     #does stuff 
    x = x + 1