Режимы открытия файлов

Тренажер по Python для пользователей с начальным уровнем подготовки.

Тренажер по Python

Работа с файлами в Python — это основа для чтения данных, записи логов, конфигов и многого другого. В этом модуле разберём, какие бывают режимы открытия файлов, чем они отличаются и как правильно выбирать нужный. Мы посмотрим на «r», «w», «a», «x», бинарные режимы, а также комбинации с плюсом и узнаем, когда какой режим использовать, чтобы не потерять данные и не получить ошибку. Задания идут от самых простых к более сложным — начнём с базовых режимов и закончим нюансами перезаписи и добавления.

Список тем

1. Режим только для чтения

id: 40059_task1

Откройте файл data.txt в режиме, который позволяет только читать содержимое. Заполните пропуски так, чтобы код открывал файл именно для чтения.

Заполните пропуски
with open(input1S, input2S) as f:
    content = f.read()
    print(content)
Сообщения
Проверить
Показать решение на 3 сек.
Показать подсказку

2. Сопоставьте режим и его действие

id: 40059_task2

Соедините режим открытия файла с тем, что он делает при отсутствии файла и при его наличии.

Сопоставьте строки в правой(нижней) части с соответствующими строками в левой(верхней) по порядковому номеру
Создаёт новый файл, если его нет; перезаписывает, если есть
Открывает для добавления в конец; создаёт, если нет
Создаёт новый файл; ошибка, если файл уже существует
Только чтение; ошибка, если файла нет
"r"
"x"
"w"
"a"
Сообщения
Проверить
Показать подсказку

3. Что будет, если открыть несуществующий файл на запись?

id: 40059_task3

Посмотрите на код и выберите, что произойдёт при его выполнении, если файла log.txt ещё нет.

Выберите правильный вариант ответа
with open("log.txt", "w") as f:
    f.write("Первый запуск")
print("Запись прошла успешно")
Сообщения
Проверить
Показать подсказку

4. Исправьте ошибку при открытии несуществующего файла

id: 40059_task4

Код пытается прочитать файл, которого нет. Исправьте режим открытия так, чтобы программа не падала с ошибкой.

Найдите ошибку и исправьте
with open("config.txt", "r") as f:
    data = f.read()
Сообщения
Проверить
Показать решение на 3 сек.
Показать подсказку

5. Режим чтения и записи одновременно

id: 40059_task5

Откройте файл так, чтобы можно было и читать его содержимое, и записывать новые данные (перезаписывая старые). Заполните пропуски.

Заполните пропуски
with open("scores.txt", input1S) as f:
    old = f.read()
    f.seek(0)
    f.write(old + "\nНовый рекорд!")
Сообщения
Проверить
Показать решение на 3 сек.
Показать подсказку

6. Соберите открытие файла из банка токенов

id: 40059_task6

Используя токены из банка, соберите строку открытия файла в режиме добавления бинарных данных.

Нужно правильно расставить в пропуски предложенные варианты
with open("image.bin", input1S) as f:
    f.write(b"\xFF\x00")
"rb"
"wb"
"ab"
"a"
"r"
"w"
"ab"
"xb"
Сообщения
Проверить
Показать решение на 3 сек.
Показать подсказку

7. Что произойдёт при попытке создать файл, который уже есть?

id: 40059_task7

Код использует эксклюзивный режим создания. Что выведется, если файл backup.zip уже существует?

Выберите правильный вариант ответа
try:
    with open("backup.zip", "x") as f:
        f.write("новый архив")
    print("Файл успешно создан")
except FileExistsError:
    print("Файл уже существует!")
Сообщения
Проверить
Показать подсказку

8. Соберите безопасную запись логов

id: 40059_task8

Перетащите строки в правильном порядке, чтобы лог записывался в конец файла, а не перезаписывал старые записи. Лишние строки есть.

Перетяните в правильном порядке строки из одного блока в другой
with open("app.log", "a") as log:
    log.write(message + "\n")
with open("app.log", "w") as log:
import os
print("Лог записан")
Сообщения
Проверить
Показать решение на 3 сек.
Показать подсказку

9. Бинарный режим + чтение и запись

id: 40059_task9

Откройте бинарный файл так, чтобы можно было и читать, и писать в него (файл должен существовать).

Заполните пропуски
with open("data.dat", input1S) as f:
    header = f.read(16)
    f.seek(0)
    f.write(b"\x00" * 16)
Сообщения
Проверить
Показать решение на 3 сек.
Показать подсказку

10. Сколько файлов будет создано?

id: 40059_task10

Посмотрите на код и введите число — сколько новых файлов появится после его выполнения (если их ещё не было).

Что должно получиться?
with open("temp1.txt", "w") as f1:
    f1.write("test")

with open("temp2.txt", "w") as f2:
    f2.write("test")
Сообщения
Проверить
Показать подсказку

Python: запуск кода в браузере

id: 40059_compiler
🐍
Запустить тренажёр (Python)
НайтиКурс.Ру