Уведомления

Группа в Telegram: @pythonsu

#1 Янв. 21, 2018 19:55:29

Podarok
Зарегистрирован: 2017-08-12
Сообщения: 21
Репутация: +  0  -
Профиль   Отправить e-mail  

Обработка закрытия программы

Как освободить ресурсы при закрытии программы? Допустим есть файл, который
долго записывается. Пользователь закрывает программу, не дождавшись завершения
записи. Как обработать эту ситуацию и выполнить какие-то действия перед
закрытием программы? Допустим записать в файл последней строчкой “Запись была
прервана” и выполнить file.close()

 import time
file = open(r"D:\test.txt", "w")
for i in range(100):
    file.write(str(i))
    time.sleep(0.1)
file.close()

Отредактировано Podarok (Янв. 21, 2018 19:56:04)

Офлайн

#2 Янв. 21, 2018 22:58:52

doza_and
От:
Зарегистрирован: 2010-08-15
Сообщения: 4138
Репутация: +  252  -
Профиль   Отправить e-mail  

Обработка закрытия программы

На это есть try…finally
Но особо на это не рассчитывайте. Если вырубить питание то не успеете вы ничего записать. В винде например закрытие по ctrl+C обрабатывается в finally блоке а закрытие по крестику нет.

Освобождением ресурсов занимается ядро операционной системы….

Надежнее дать пользователю кнопку - прервать программу да еще показать индикатор выполнения. Тогда есть шанс что пользователь ее нажмет и вы сможете сделать все что вам нужно а потом сами закроете программу.



Отредактировано doza_and (Янв. 21, 2018 23:01:29)

Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version