Найти - Пользователи
Полная версия: Необходимость закрытия файлов.
Начало » Python для новичков » Необходимость закрытия файлов.
1 2
Alex2ndr
Всем доброго времени суток!

Возник такой вопросик. Я сейчас занят одним проектом, где помимо прочего нужно читать информацию из файлов. Если быть точнее то из tar архива и из файлов с картинками(jpg). В результате разработки написали некоторое количество кода, но неожиданно обнаружили, что местами мы делаем open(), а вот close() нигде не делается (для tar это соответственно tarfile.TarFile). Файлы открываются только на чтение и закрываются вместе с закрытием программы.

Собственно вопрос:
Насколько такое поведение критично? Я понимаю что это не есть хорошо, но как красиво реализовать закрытие пока не знаю. А делать абы как не хочется.

Всем спасибо за внимание.
UsCr
Красиво?
Zubchick
file.close() достаточно красиво? :)
Alex2ndr
UsCr
Красиво?
Там накручено MVC. Если делать абы как, то работа с данными( т е model) попадает в представление (view). Как это обойти я пока не придумал. Кроме того есть еще кое-какие мелкие проблемы. Не хочется ими морочится, но хочется знать что эта лень за собой может повлечь. Пока работает и так, конечно.
Dimka665
with statement?
Alex2ndr
Dimka665
with statement?
Идея хорошая. Спасибо. Попробую приделать.
Только вопрос теперь как это проверить…
ZZZ
Что проверить?
После окончания блока with файл закрывается. Ясно и чётко.
Использую постоянно.
Alex2ndr
ZZZ
После окончания блока with файл закрывается. Ясно и чётко.
Хорошо. А вот в таком случае что будет:
for flname in filelist:
with open(flname) as fl:
yield fl
Когда именно закроется fl?
Александр Кошелев
Alex2ndr
Когда именно закроется fl?
При выходе из блока with
Alex2ndr
Daevaorn
При выходе из блока with
Т е после того как генератор закончит отдавать файлы? (кончатся имена в filelist)
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB