Работа с файлами в Python — это основа для чтения данных, записи логов, конфигов и многого другого. В этом модуле разберём, какие бывают режимы открытия файлов, чем они отличаются и как правильно выбирать нужный. Мы посмотрим на «r», «w», «a», «x», бинарные режимы, а также комбинации с плюсом и узнаем, когда какой режим использовать, чтобы не потерять данные и не получить ошибку. Задания идут от самых простых к более сложным — начнём с базовых режимов и закончим нюансами перезаписи и добавления.
- Модуль 1: Основы синтаксиса Python
- Модуль 2: Переменные и типы данных
- Модуль 3: Операторы
- Арифметические операторы (+, -, *, /).
- Целочисленное деление и остаток (// и %).
- Возведение в степень (**).
- Операторы сравнения.
- Логические операторы (and, or, not).
- Операторы присваивания (=, +=, -=).
- Операторы принадлежности (in, not in).
- Операторы идентичности (is, is not).
- Битовые операторы.
- Тернарный оператор.
- Модуль 4: Ввод и вывод данных
- Модуль 5: Условные конструкции
- Модуль 6: Циклы
- Модуль 7: Строки
- Модуль 8: Списки
- Модуль 9: Кортежи
- Модуль 10: Словари
- Модуль 11: Множества
- Модуль 12: Функции
- Модуль 13: Встроенные функции
- Модуль 14: Работа с файлами
- Модуль 15: Обработка исключений
- Модуль 16: Модули и пакеты
- Модуль 17: ООП - Основы
- Модуль 18: ООП - Продвинутый уровень
- Модуль 19: Декораторы
- Модуль 20: Генераторы и итераторы
- Модуль 21: Регулярные выражения
- Модуль 22: Дата и время
- Модуль 23: Математические операции
- Модуль 24: Работа с сетью
- Модуль 25: Асинхронное программирование
- Модуль 26: Многопоточность
- Модуль 27: Тестирование
- Модуль 28: Базы данных
- Модуль 29: Алгоритмы и структуры данных
- Модуль 30: Продвинутые возможности
1. Режим только для чтения
Откройте файл data.txt в режиме, который позволяет только читать содержимое. Заполните пропуски так, чтобы код открывал файл именно для чтения.
with open(input1S, input2S) as f:
content = f.read()
print(content)2. Сопоставьте режим и его действие
Соедините режим открытия файла с тем, что он делает при отсутствии файла и при его наличии.
3. Что будет, если открыть несуществующий файл на запись?
Посмотрите на код и выберите, что произойдёт при его выполнении, если файла log.txt ещё нет.
with open("log.txt", "w") as f:
f.write("Первый запуск")
print("Запись прошла успешно")4. Исправьте ошибку при открытии несуществующего файла
Код пытается прочитать файл, которого нет. Исправьте режим открытия так, чтобы программа не падала с ошибкой.
with open("config.txt", "r") as f: data = f.read()5. Режим чтения и записи одновременно
Откройте файл так, чтобы можно было и читать его содержимое, и записывать новые данные (перезаписывая старые). Заполните пропуски.
with open("scores.txt", input1S) as f:
old = f.read()
f.seek(0)
f.write(old + "\nНовый рекорд!")6. Соберите открытие файла из банка токенов
Используя токены из банка, соберите строку открытия файла в режиме добавления бинарных данных.
with open("image.bin", input1S) as f:
f.write(b"\xFF\x00")7. Что произойдёт при попытке создать файл, который уже есть?
Код использует эксклюзивный режим создания. Что выведется, если файл backup.zip уже существует?
try:
with open("backup.zip", "x") as f:
f.write("новый архив")
print("Файл успешно создан")
except FileExistsError:
print("Файл уже существует!")8. Соберите безопасную запись логов
Перетащите строки в правильном порядке, чтобы лог записывался в конец файла, а не перезаписывал старые записи. Лишние строки есть.
with open("app.log", "a") as log: log.write(message + "\n")with open("app.log", "w") as log:import osprint("Лог записан")9. Бинарный режим + чтение и запись
Откройте бинарный файл так, чтобы можно было и читать, и писать в него (файл должен существовать).
with open("data.dat", input1S) as f:
header = f.read(16)
f.seek(0)
f.write(b"\x00" * 16)10. Сколько файлов будет создано?
Посмотрите на код и введите число — сколько новых файлов появится после его выполнения (если их ещё не было).
with open("temp1.txt", "w") as f1:
f1.write("test")
with open("temp2.txt", "w") as f2:
f2.write("test")