Уведомления

Группа в Telegram: @pythonsu

#1 Июнь 2, 2010 14:38:43

Alex2ndr
От:
Зарегистрирован: 2009-12-26
Сообщения: 204
Репутация: +  0  -
Профиль   Отправить e-mail  

Необходимость закрытия файлов.

Всем доброго времени суток!

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

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

Всем спасибо за внимание.



Офлайн

#2 Июнь 2, 2010 18:14:24

UsCr
От:
Зарегистрирован: 2009-11-04
Сообщения: 216
Репутация: +  0  -
Профиль   Отправить e-mail  

Необходимость закрытия файлов.

Красиво?



Офлайн

#3 Июнь 2, 2010 18:20:52

Zubchick
От:
Зарегистрирован: 2009-07-08
Сообщения: 613
Репутация: +  0  -
Профиль   Отправить e-mail  

Необходимость закрытия файлов.

file.close() достаточно красиво? :)



Офлайн

#4 Июнь 2, 2010 21:12:13

Alex2ndr
От:
Зарегистрирован: 2009-12-26
Сообщения: 204
Репутация: +  0  -
Профиль   Отправить e-mail  

Необходимость закрытия файлов.

UsCr
Красиво?
Там накручено MVC. Если делать абы как, то работа с данными( т е model) попадает в представление (view). Как это обойти я пока не придумал. Кроме того есть еще кое-какие мелкие проблемы. Не хочется ими морочится, но хочется знать что эта лень за собой может повлечь. Пока работает и так, конечно.



Отредактировано (Июнь 2, 2010 21:13:14)

Офлайн

#5 Июнь 3, 2010 10:28:47

Dimka665
От:
Зарегистрирован: 2008-09-19
Сообщения: 177
Репутация: +  0  -
Профиль   Отправить e-mail  

Необходимость закрытия файлов.

with statement?



Офлайн

#6 Июнь 3, 2010 10:46:28

Alex2ndr
От:
Зарегистрирован: 2009-12-26
Сообщения: 204
Репутация: +  0  -
Профиль   Отправить e-mail  

Необходимость закрытия файлов.

Dimka665
with statement?
Идея хорошая. Спасибо. Попробую приделать.
Только вопрос теперь как это проверить…



Офлайн

#7 Июнь 3, 2010 10:54:41

ZZZ
От: Москва
Зарегистрирован: 2008-04-03
Сообщения: 2161
Репутация: +  26  -
Профиль   Адрес электронной почты  

Необходимость закрытия файлов.

Что проверить?
После окончания блока with файл закрывается. Ясно и чётко.
Использую постоянно.



Офлайн

#8 Июнь 3, 2010 11:36:53

Alex2ndr
От:
Зарегистрирован: 2009-12-26
Сообщения: 204
Репутация: +  0  -
Профиль   Отправить e-mail  

Необходимость закрытия файлов.

ZZZ
После окончания блока with файл закрывается. Ясно и чётко.
Хорошо. А вот в таком случае что будет:
for flname in filelist:
with open(flname) as fl:
yield fl
Когда именно закроется fl?



Офлайн

#9 Июнь 3, 2010 12:20:25

Александр Кошелев
От: Москва
Зарегистрирован: 2007-02-03
Сообщения: 1724
Репутация: +  2  -
Профиль   Отправить e-mail  

Необходимость закрытия файлов.

Alex2ndr
Когда именно закроется fl?
При выходе из блока with



Офлайн

#10 Июнь 3, 2010 13:02:57

Alex2ndr
От:
Зарегистрирован: 2009-12-26
Сообщения: 204
Репутация: +  0  -
Профиль   Отправить e-mail  

Необходимость закрытия файлов.

Daevaorn
При выходе из блока with
Т е после того как генератор закончит отдавать файлы? (кончатся имена в filelist)



Отредактировано (Июнь 3, 2010 13:03:08)

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version