Код: with open("data.txt", "r", encoding="utf-8") as f: content = f.read(). После выхода из блока вы делаете f.read() ещё раз. Что произойдёт?

AФайл уже закрыт после выхода из блока with, повторный f.read() поднимет ошибку ValueError
BФайл автоматически переоткроется в том же режиме, и f.read() вернёт прежнее содержимое
CВернётся пустая строка '' из-за положения курсора f в конце файла после первого чтения
DБудет возвращён None без ошибки, поскольку with подменяет f на безопасную заглушку
Правильный ответ. После выхода из блока with файл закрыт, и любые операции через f приводят к ValueError.

Разбор

Менеджер контекста with open(...) as f гарантированно закрывает файл при выходе из блока. После этого попытка чтения через f поднимает ValueError: I/O operation on closed file. Файл сам не переоткрывается, дескриптор не подменяется на заглушку, и пустая строка тоже не возвращается. Если данные нужны повторно — сохраняйте их в переменную content или открывайте файл заново.

Можно заниматься бесплатно

Готовим вопросы…

Три вопроса по теме этой страницы, с объяснениями.

Продолжить в браузере

Ещё вопросы по теме «Работа с файлами: JSON и CSV»