Работа с файлом — как поход в библиотеку. Вы берёте книгу с полки (open), читаете или делаете пометки (read/write), а потом обязательно возвращаете её (close). Конструкция with — это как библиотекарь, который заберёт книгу за вас автоматически, как только вы выйдете из зала: вы физически не сможете забыть её вернуть.
Открытие файла: with open()
Файлы открывают функциейИменованный блок кода, который можно вызывать многократно. Может принимать аргументы и возвращать результат.open(путь, режим). Лучший способ — через with: он сам закроет файл, даже если возникнет ошибка.
Режим
Значение
"r"
чтение (по умолчанию)
"w"
запись (перезаписывает файл)
"a"
добавление в конец
В этом тренажёре файлы пишутся в виртуальную файловую систему браузера — всё работает по-настоящему, но на диск вашего компьютера не попадает.
▶ write-file.py
Чтение построчно
Большие файлы читают по строкам в циклеКонструкция, повторяющая блок кода: for перебирает элементы, while — пока условие истинно. — так не нужно держать весь файл в памяти.
▶ read-lines.py
💡Совет
Почти всегда используйте with open(...) as f:, а не голый open(). with автоматически закрывает файл при выходе из блока — забыть про f.close() невозможно.
💡Совет
🔮 Предскажите вывод
Режим "w"перезаписывает файл с нуля, а "a" дописывает в конец. Что окажется в файле после этого кода?
▶ predict-modes.py
Ответ — в файле будут строкиТекстовое значение в кавычках: "привет". Неизменяема. По-английски string (str).вторая и третья. Второй open(..., "w") стёр «первая» и записал заново, а "a" добавил «третья» в конец. Строки «первая» в итоге нет — это типичная ловушка режима "w".
⚠️ Частые ошибки новичков
Частая ошибка — открыть файл в режиме "w" (или вовсе не создать его) и тут же попытаться читать. В режиме записи чтение запрещено, а несуществующий файл в режиме "r" даёт FileNotFoundError. Запустите код и почините режим, чтобы запись и чтение шли отдельно.
▶ broken-read.py
Заданиерешение.py
Напишите функцию save_and_count(text): запишите строку text в файл "out.txt" (режим "w"), затем прочитайте файл обратно и верните длину прочитанного содержимого.
Заданиерешение.py
Доп. задача. Напишите count_lines(text): запишите text в файл "lines.txt", затем прочитайте его построчно и верните количество непустых строк.
❓Проверь себя
Зачем открывать файл через with open(...) as f?
Что делает режим "w" при открытии существующего файла?
ℹ️Важно
✅ Что вы узнали
with open(путь, режим) as f: — «библиотекарь», который сам закроет файл.
Режимы: "r" — чтение, "w" — перезапись с нуля, "a" — дозапись в конец.
Файл читают целиком (f.read()) или построчно (for line in f) для больших данных.
Открытый на запись файл нельзя читать в том же блоке — нужен отдельный open.
Комментарии
Загрузка…
Загрузка комментариев…