Чтение и запись CSV, парсинг JSON, контекстный менеджер with open — повседневные задачи аналитика. На собеседовании могут попросить прочитать CSV без pandas, распарсить вложенный JSON или объяснить разницу между json.load и json.loads. Эти навыки показывают, что кандидат не привязан к одной библиотеке.
Контекстный менеджер `with open(...) as f` гарантирует, что файл будет закрыт при выходе из блока `with`, даже если во время чтения или обработки данных произошло исключение. Это снижает риск утечек файловых дескрипторов и проблем с блокировками файлов. Кодировка по умолчанию не фиксируется `with` — её нужно задавать через `encoding=...` при необходимости.
Подробный разбор →При `open("missing.csv", "r")` Python пытается открыть файл для чтения. Если файла нет, это считается ошибкой, и обычно возникает `FileNotFoundError`. Если вам нужно создать файл при отсутствии, используют режим `w` (перезаписать/создать) или `a` (создать/дописать).
Подробный разбор →Открытие файла через `open("report.txt", "w")` приводит к перезаписи: содержимое файла обнуляется, и запись начинается заново. Это частая ошибка, когда нужно было дописать в конец. Для дописывания используют `open("report.txt", "a")` (append), а для безопасной работы — обычно в связке с `with`.
Подробный разбор →`with open(...) as f` закрывает файл сразу после выхода из блока. Поэтому дальнейшие операции ввода-вывода через `f` обычно приводят к ошибке «файл закрыт». Если нужно читать снова, сохраните данные в переменную (`content`) или откройте файл заново во втором `with open(...)`.
Подробный разбор →Если открывать файл вручную, легко забыть `f.close()`, особенно если в середине кода есть исключения или ранние `return`. Лучший практический подход — использовать `with open(...) as f`, тогда закрытие файла гарантируется автоматически. Это важно и для корректного сброса данных на диск (flush), и для отсутствия блокировок файла при последующих чтениях/записях.
Подробный разбор →В приложении — таймер, прогресс, стрики и 1700+ вопросов по всем темам.
Тренировать Python в Telegram