2014-10-10 57 views
2

我试图在Python中多次读取一些文件的行。阅读同一个文件的多行次Python

我使用这个基本途径:

with open(name, 'r+') as file: 
       for line in file: 
        # Do Something with line 

,这就是工作正常,但如果我想每个迭代线,而我还是用我的文件一样打开第二次:

with open(name, 'r+') as file: 
       for line in file: 
        # Do Something with line 
       for line in file: 
        # Do Something with line, second time 

然后它不起作用,我需要打开,然后关闭,然后再打开我的文件,使其工作。

with open(name, 'r+') as file: 
        for line in file: 
         # Do Something with line 
with open(name, 'r+') as file: 
        for line in file: 
         # Do Something with line 

感谢您的回答!

回答

10

使用file.seek()跳转到文件中的特定位置。但是,请考虑是否真的有必要再次通过文件。也许有更好的选择。

with open(name, 'r+') as file: 
    for line in file: 
     # Do Something with line 
    file.seek(0) 
    for line in file: 
     # Do Something with line, second time 
+0

谢谢,这工作正常!现在我们需要多次遍历整个文件,因为我们使用第一次迭代的值来完成第二次迭代,这有点棘手,但我们也做了一个更好的版本,只迭代一次,但我想要这对于调试目的来说,我们实际上迭代的文件槽没有使用相同的结构,它非常随机,我们需要首先正确迭代的值永远不会在同一行号上,因此我们不能使用linecache或islice。 – Retsim 2014-10-10 08:52:26