Форум сайта python.su
Всем доброго времени суток!
Возник такой вопросик. Я сейчас занят одним проектом, где помимо прочего нужно читать информацию из файлов. Если быть точнее то из tar архива и из файлов с картинками(jpg). В результате разработки написали некоторое количество кода, но неожиданно обнаружили, что местами мы делаем open(), а вот close() нигде не делается (для tar это соответственно tarfile.TarFile). Файлы открываются только на чтение и закрываются вместе с закрытием программы.
Собственно вопрос:
Насколько такое поведение критично? Я понимаю что это не есть хорошо, но как красиво реализовать закрытие пока не знаю. А делать абы как не хочется.
Всем спасибо за внимание.
Офлайн
Красиво?
Офлайн
file.close() достаточно красиво? :)
Офлайн
UsCrТам накручено MVC. Если делать абы как, то работа с данными( т е model) попадает в представление (view). Как это обойти я пока не придумал. Кроме того есть еще кое-какие мелкие проблемы. Не хочется ими морочится, но хочется знать что эта лень за собой может повлечь. Пока работает и так, конечно.
Красиво?
Отредактировано (Июнь 2, 2010 21:13:14)
Офлайн
with statement?
Офлайн
Dimka665Идея хорошая. Спасибо. Попробую приделать.
with statement?
Офлайн
Что проверить?
После окончания блока with файл закрывается. Ясно и чётко.
Использую постоянно.
Офлайн
ZZZХорошо. А вот в таком случае что будет:
После окончания блока with файл закрывается. Ясно и чётко.
for flname in filelist:
with open(flname) as fl:
yield fl
Офлайн
Alex2ndrПри выходе из блока with
Когда именно закроется fl?
Офлайн
DaevaornТ е после того как генератор закончит отдавать файлы? (кончатся имена в filelist)
При выходе из блока with
Отредактировано (Июнь 3, 2010 13:03:08)
Офлайн