Сообщить об ошибке.

Способы чтения открытого файла в Python

Чтения информации из открытого файла

Существует несколько методов, которые могут быть вызваны для чтения открытого файла:

fp.read(size=-1):
Метод считывает из файла не более size символов в текстовом режиме или size байтов в бинарном режиме и возвращает результат в виде строки в текстовом режиме или байтового объекта в двоичном режиме. Размер size является необязательным числовым аргументом. Если size опущен или равен None или -1, все содержимое файла будет прочитано и возвращено. Если файл в два раза больше оперативной памяти вашей машины, то это уже ваша проблема. В противном случае считываются и возвращаются Если достигнут конец файла, fp.read() вернет пустую строку ('').

>>> with open('text.txt', 'r') as fp:
...    # Чтение и печать всего файла
...    print(fp.read())

fp.readline(size=-1):
Метод читает не более size символов в строке за раз. Считывание продолжается до конца строки. Если аргумент опущен или равен None или -1, то читается вся строка (или остальная часть строки). Символ новой строки '\n' остается в конце возвращаемой строки и опускается только в последней строке файла.

>>> with open('text.txt', 'r') as fp:
...    # читаем и печатаем первые 5 символов строки
...    print(fp.readline(5))

fp.readlines():
Метод читает файл целиком и возвращает их в виде списка.

>>> with open('text.txt', 'r') as fp:
...    # Возвращает объект списка
...    text_list = fp.readlines()
...    
>>> text_list
# ['Строка №1', 'Строка №2', 'Строка №3', 'Строка №4', 'Строка №5']

Приведенный выше пример также можно выполнить с помощью функции list() для создания списка из файлового объекта:

>>> with open('text.txt', 'r') as fp:
...    # Возвращает объект списка
...    text_list = list(fp)
...    
>>> text_list
# ['Строка №1', 'Строка №2', 'Строка №3', 'Строка №4', 'Строка №5']

Обычно, что нужно делать при чтении файла, это читать из него по одной строке и каким-то образом ее обрабатывать. Вот пример того, как использовать метод fp.readline() для выполнения чтения файла построчно:

>>> with open('text.txt', 'r') as fp:
...    # Считывание и печать всего файла строка за строкой
...    line = fp.readline()
...    while line != '':
...        print(line, end='')
...        line = fp.readline()

Другой способ, которым можно перебирать каждую строку в файле, это использовать метод file.readlines() файлового объекта. Помните, что этот метод возвращает список, где каждый элемент в списке представляет строку в файле:

>>> with open('text.txt', 'r') as fp:
...    for line in fp.readlines():
...        print(line, end='')

Приведенные выше примеры могут быть упрощены путем перебора самого объекта file. Этот подход более быстрый и эффективный. Рекомендуется использовать именно его для чтения файлов:

>>> with open('text.txt', 'r') as fp:
...    # Считывание и печать всего файла строка за строкой
...    for line in fp:
...        print(line, end='')

Примечание:
примеры содержат запись print(line, end="). end= " предотвращает добавление дополнительной новой строки в печатаемый текст. Дополнительно смотрите описание функции print().