Чаще всего данные для обработки поступают из внешних источников – файлов. Существуют различные форматы файлов, наиболее простой и универсальный – текстовый. Он открывается в любом текстовом редакторе (например, Блокноте). Расширения у текстовых файлов: .txt, .html, .csv (их достаточно много).
Помимо текстовых есть другие типы файлов (музыкальные, видео, .doc, .ppt и пр.), которые открываются в специальных программах (музыкальный или видео проигрыватель, MS Word и пр.).
В этой главе остановимся на текстовых файлах, хотя возможности Python этим не ограничиваются.
Выполните несколько шагов.
- Создайте каталог (папку) file_examples.
- С помощью (например, Блокнота) создайте в каталоге file_examples текстовый файл example_text.txt, содержащий следующий текст:
First line of text
Second line of text
Third line of text
- Создайте в каталоге file_examples файл file_reader.py, содержащий исходный текст программы на языке Python:
file = open(‘example_text.txt’, ‘r’)
contents = file.read()
print(contents)
file.close()
Получится примерно следующее:

Запустим программу file_reader.py:

Небольшие комментарии к исходному тексту:

Рассмотренный подход по работе с файлами в Python перешел из языка С.
По умолчанию, если не указывать режим открытия, то используется открытие на «чтение». Файлы особенно подвержены ошибкам во время работы с ними. Диск может заполниться, пользователь может удалить используемый файл во время записи, файл могут переместить и т.д. Эти типы ошибок можно перехватить с помощью обработки исключений:

Запустим программу:

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

Выполним программу:

Исходный текст заметно упростился, т.к. освобождение ресурсов в этом случае происходит автоматически (внутри менеджера контекста).
Каким образом Python определяет, где искать файл для открытия? В момент вызова функции open Python ищет указанный файл в текущем рабочем каталоге. В момент запуска программы текущий рабочий каталог там, где сохранена программа.
Определить текущий рабочий каталог можно следующим образом:

Если файл находится в другом каталоге, то необходимо указать путь к нему:
- абсолютный путь (начиная с корневого каталога): ‘C:\Users\Dmitriy\data1.txt’
- относительный путь (относительно текущего рабочего каталога, см. рисунок ниже): ‘data\data1.txt’
На следующем рисунке текущий рабочий каталог ‘C:\Users\Dmitriy\home’

Далее рассмотрим некоторые способы чтения содержимого файла.
В следующем примере происходит чтение содержимого всего файла, начиная с текущей позиции курсора (перемещает курсор в конец файла):

Результат выполнения:

Следующий пример демонстрирует работу с курсором:

Результат работы программы:

Если необходимо получить список, состоящий из строк, то можно воспользоваться методом readlines:

Результат работы программы:

Для демонстрации следующего примера создайте файл plan.txt, содержащий следующий текст:
Mercury
Venus
Earth
Mars
Jupiter
Saturn
Uranus
Neptune
Далее запустим программу (с учетом текущего рабочего каталога!):

В результате выполнения получим:

Комментарии к исходному тексту приведены на следующем рисунке:

Используйте следующий способ чтения из файла, если хотите сделать некоторые операции с каждой из строк, начиная с текущей позиции файлового курсора до конца файла:

Результат выполнения:

Следующий пример производит запись строки в файл. Если файла с указанным именем в рабочем каталоге нет, то он будет создан, если файл с таким именем существует, то он будет ПЕРЕЗАПИСАН:

Для добавления строки в файл необходимо открыть файл в режиме «a» (сокр. от append):
