Чтение и запись файлов в Python: приключения с текстом и байтами

Введение

Работа с файлами в 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! А значит, можно наконец автоматизировать ведение дневника, чтобы больше времени оставалось на программирование (и мемы про программистов). 🎉

Оставьте комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Сайт создал Романенко Артем