2017-02-13 26 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