Codebra
29 января 2026 в 18:34

Урок 42. Итоги раздела «Работа с файлами в Python»

В этом уроке подведем итоги раздела «Работа с файлами в Python» курса по Python.
📝

Внимание! На этой странице вы найдете материал урока из архивного курса по Python. Курс был написан в 2024 году и по-прежнему актуален для начинающих разработчиков.

Теоретический материал сохранен в исходном виде, а практические задания с автоматической проверкой вынесены в отдельные интенсивы и задания.

Полный список уроков доступен по тегу Архивный курс по Python и на странице первого урока.

В разделе «Работа с файлами в Python» научились работать с файлами встроенными средствами языка Python.

Краткий пересказ раздела «Работа с файлами в Python»

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

В следующем уроке разобрались с более прогрессивным и надежным способом работы с файлами, при помощи конструкции with/as.

Новая информация из раздела «Работа с файлами в Python»

Открыть файл для чтения можно следующим образом:

f = open('file.txt', 'r')
f = open('file.txt', mode='r')

Другие режимы (их можно комбинировать):

  • r – открытие файла для чтение (используется по умолчанию);
  • w – открытие файла для записи, при этом все содержимое файла удаляется, а в случае отсутствия файла по указанному пути, он создается;
  • x – создание нового файла для записи (если файл уже существовал, то возникнет исключение;
  • a – открытие файла для записи, при этом содержимое не удаляется, а новая информация добавляется в конец файла;
  • b – открытие файла в бинарном режиме;
  • t – открытие файла в текстовом режиме (используется по умолчанию);
  • + - открытие файла для чтения и записи.

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

f = open('file.txt')

print(f.name)   # => file.txt
print(f.mode)   # => r
print(f.closed) # => False

Для вычисления абсолютного пути до файла следует подключить модуль os и использовать метод abspath():

import os
print(os.path.abspath('file.txt')) # => C:\Users\User\file.txt

Использовать абсолютный путь с обратными слешами (\) можно только с помощью спецификатора r:

f = open(r'C:\Users\User\file.txt')

Для чтения из файла используйте метод read() или цикл for:

data = f.read()  
print(data)
for line in f:
    print(line)

Метод close() закрывает файл:

f.close()

Метод write() записывает строку в файл:

f.write("Строка")

При чтении или записи в файл могут возникнуть проблемы с кодировкой. Чтобы это решить, достаточно открыть файл в правильной кодировке. Используйте параметр encoding функции open():

str = "Привет"  
f = open('file.txt', 'a', encoding='utf-8')  
f.write(str)

Для работы с файлами намного удобнее использовать оператор with/as, которая работает как менеджер контекста:

💡 Менеджеры контекста

Менеджеры контекста необходимы для выделения ресурсов и их освобождение за ненадобностью. В нашем случае, использование конструкции with/as при работе с файлами в Python гарантирует закрытие файла.

with open("file.txt", "r", encoding='utf-8') as f:
    print(f.read())

Заключение

В следующем разделе познакомимся с итераторами. На самом деле, мы с ними знакомы практически с первого урока, а теперь настало время разобраться с ними детально.

📝

Переходите к следующему уроку курса, а так же не забудьте посмотреть новый материал на Codebra по тегу Python.