Встречается на собеседованиях • сегодня
Почему сборщик мусора (Garbage collector) не очищает файл
В Python сборщик мусора (GC) автоматически освобождает память от неиспользуемых объектов, но он не управляет файловыми дескрипторами. Если файл открыт и не закрыт явно, GC может удалить объект файла, но сам файловый дескриптор останется висеть до завершения программы.
Проблема:
python
f = open('file.txt', 'r')
data = f.read()
# забыли f.close()Решение:
- Всегда используйте
withдля гарантированного закрытия:
python
with open('file.txt', 'r') as f:
data = f.read()- Или явно вызывайте
.close():
python
f = open('file.txt', 'r')
try:
data = f.read()
finally:
f.close()GC может вызвать __del__ у файлового объекта, но это ненадежно и зависит от реализации интерпретатора. Для работы с ресурсами (файлы, сетевые соединения) всегда используйте менеджеры контекста (with).

Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы