Подтвердить что ты не робот

Повторно открыть файлы в Python?

Скажем, у меня есть этот простой python script:

file = open('C:\\some_text.txt')
print file.readlines()
print file.readlines()

Когда он запускается, первая печать печатает список, содержащий текст файла, а вторая печать печатает пустой список. Не совсем неожиданно. Но есть ли способ "открутить" файл, чтобы я мог его прочитать снова? Или самый быстрый способ просто открыть его?

4b9b3361

Ответ 1

Вы можете reset указатель файла, вызывая seek():

file.seek(0)

сделает это. Вам понадобится эта строка после первого readlines(). Обратите внимание, что file должен поддерживать произвольный доступ для работы выше.

Ответ 2

Для небольших файлов, вероятно, гораздо быстрее сохранить содержимое файла в памяти

file = open('C:\\some_text.txt')
fileContents = file.readlines()
print fileContents
print fileContents # This line will work as well.

Конечно, если это большой файл, это может вызвать нагрузку на вашу оперативную память.

Ответ 3

Помните, что вы всегда можете использовать оператор with для открытия и закрытия файлов:

from __future__ import with_statement

with open('C:\\some_text.txt') as file:
    data = file.readlines()
#File is now closed
for line in data:
    print line