Что гарантирует конструкция with open("data.csv", "r") as f: при чтении файла в Python?
AФайл с указанным именем будет автоматически создан, если его нет на диске на момент открытия
BФайл целиком загрузится в память сразу при входе в блок, без явного вызова метода
f.read()CПо умолчанию выбирается кодировка
utf-8 для чтения файла, даже без явного параметра encodingDФайл будет автоматически закрыт после выхода из блока, даже если внутри возникнет исключение
Правильный ответ.
with гарантирует корректное закрытие файла после выхода из блока.Разбор
Контекстный менеджер with open(...) as f гарантирует, что файл будет закрыт при выходе из блока, даже если во время чтения или обработки данных произошло исключение. Это снижает риск утечек файловых дескрипторов и проблем с блокировками. Файл при этом не создаётся автоматически в режиме "r" — будет ошибка FileNotFoundError. Кодировка по умолчанию зависит от системы, и with сам её не фиксирует — её задают через параметр encoding=....
Проверь себя · 1/3разбор после ответа
Вы используете
csv.reader для чтения файла. Что такое row в цикле for row in csv.reader(f):?Ещё вопросы по теме «Работа с файлами: JSON и CSV»
- Вы сохраняете результат анализа в файл отчёта. Что произойдёт, если выполнить `open("report.csv", "w")`, когда `report.csv` уже существует?
- Есть строка `text = '{"user_id": 7, "active": true}'`. Что вернёт `json.loads(text)`?
- Вы читаете CSV с заголовком через `csv.DictReader(f)`. Что представляет собой `row` внутри цикла `for row in csv.DictReader(f):`?
- Вы хотите дописывать строки в файл лога `errors.log`, не удаляя то, что уже записано. Как открыть файл?
- При чтении файла `config.json` с кириллицей на некоторых системах вы получаете `UnicodeDecodeError`. Какой вариант чтения наиболее устойчивый?
- Все вопросы по «Работа с файлами: JSON и CSV» →