2014-10-10 5 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

Смежные вопросы