Внимание! На этой странице вы найдете материал урока из архивного курса по 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.
