
Введение
Работа с файлами в Python — это как приготовление борща: сначала надо открыть, потом добавить (или убрать) ингредиенты, и не забыть закрыть кастрюлю, чтобы ничего не убежало. В этой статье мы разберёмся, как правильно читать и записывать файлы, а также сделаем это с юмором и необычными примерами!
1. Открываем файлы: «Заходи, не бойся!»
Файлы в Python открываются с помощью функции open()
. Основные режимы работы:
"r"
— только чтение (если файла нет, будет ошибка, как если открыть пустой холодильник в надежде найти еду)."w"
— запись (если файл существует, он будет уничтожен, как несохранённый проект после зависания IDE)."a"
— добавление (новый текст записывается в конец, как новые мемы в коллекцию)."rb"
/"wb"
— чтение и запись в бинарном режиме (для файлов, которые не текст, например, изображения, как если бы вы пытались прочитать рецепт на японском без перевода).
Пример: открываем файл и читаем его
with open("example.txt", "r", encoding="utf-8") as file:
content = file.read()
print("Содержимое файла:")
print(content)
Что здесь происходит?
with open(...) as file:
— Python сам закроет файл после работы с ним (автоматическое выключение света при выходе из комнаты!).file.read()
— прочитывает весь файл целиком (может вызвать «передозировку» памяти, если файл большой!).
Альтернативный вариант: читаем построчно
with open("example.txt", "r", encoding="utf-8") as file:
for line in file:
print("Строка из файла:", line.strip())
(Тут strip()
убирает лишние переводы строк, как если бы вы убрали крошки с клавиатуры.)
2. Запись файлов: «Дневник программиста»
Допустим, вы хотите оставить след в истории и записать что-то в файл. Тут на помощь приходит режим "w"
или "a"
.
Пример: запись в файл
with open("diary.txt", "w", encoding="utf-8") as file:
file.write("Сегодня я наконец понял, что такое декораторы! 🎉\n")
file.write("Завтра буду разбираться с многопоточностью... Если доживу.\n")
💡 Важно! Режим "w"
перезаписывает файл, поэтому если там уже были воспоминания о ваших лучших алгоритмах — они исчезнут!
3. Добавление в файл: «Как сохранить историю?»
Чтобы ничего не потерять, используем "a"
(append). Это как дописывать дневник, а не переписывать его заново каждый день.
with open("diary.txt", "a", encoding="utf-8") as file:
file.write("Программирование – это магия, но иногда с ошибками.\n")
Теперь, даже если мы перезапустим программу, новая запись добавится в конец файла, не удаляя старые мысли.
4. Работа с бинарными файлами: «Открываем тёмные материи»
Файлы бывают не только текстовыми, но и бинарными. Например, изображения или музыка.
Пример: копируем изображение
with open("image.jpg", "rb") as source, open("copy.jpg", "wb") as destination:
destination.write(source.read())
Python тут просто копирует содержимое файла, даже не вникая, что внутри. Как флешка, которая не спрашивает, что именно вы на неё записали.
5. Как избежать проблем при работе с файлами?
- Файл не найден? Используйте
try-except
, чтобы избежать ошибок:try: with open("missing.txt", "r") as file: print(file.read()) except FileNotFoundError: print("Файл не найден! Может, он устал и убежал?")
- Кодировка сломала вам мозг? Используйте
encoding="utf-8"
, чтобы русский текст не превращался в иероглифы. - Файл слишком большой? Читайте его построчно, а не целиком (
for line in file
).
Заключение
Работа с файлами в Python — это не сложно, если понимать принципы:
- 📖 Читаем файлы (
"r"
), когда хотим узнать, что там внутри. - ✍ Записываем файлы (
"w"
), когда хотим создать или заменить текст. - ➕ Добавляем данные (
"a"
), чтобы не потерять старые записи. - 🏴☠️ Работаем с бинарными файлами (
"rb"
/"wb"
), если это не текст, а что-то серьёзное (картинки, музыка, зашифрованные послания).
Теперь вы знаете, как управлять файлами в Python! А значит, можно наконец автоматизировать ведение дневника, чтобы больше времени оставалось на программирование (и мемы про программистов). 🎉