В аналитическом скрипте вы делаете f = open("out.csv", "w") и иногда забываете вызвать f.close(). Как лучше всего избежать таких ошибок и гарантировать закрытие файла?

AХранить f в глобальной переменной модуля и закрывать в самом конце скрипта
BПолагаться на ОС и буфер: после f.write(...) система сама сбрасывает данные
CОткрывать файл в режиме a (append): данные сохраняются, закрытие не нужно
DИспользовать with open("out.csv", "w", encoding="utf-8") as f: для гарантии
Правильный ответ. Контекстный менеджер with гарантирует закрытие файла даже при возникновении исключения.

Разбор

Если открывать файл вручную, легко забыть f.close(), особенно если в середине кода есть исключения или ранние return. Лучший практический подход — использовать with open(...) as f, тогда закрытие файла гарантируется автоматически даже при ошибке. Это важно и для корректного сброса данных на диск (flush), и для отсутствия блокировок файла при последующих чтениях. Глобальная переменная или режим a сами по себе не закрывают файл, а ОС не гарантирует своевременное закрытие.

Проверь себя · 1/3разбор после ответа
Есть строка text = '{"user_id": 7, "active": true}'. Что вернёт json.loads(text)?
Тренировать Python в Telegram

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