Форум сайта python.su
Как освободить ресурсы при закрытии программы? Допустим есть файл, который
долго записывается. Пользователь закрывает программу, не дождавшись завершения
записи. Как обработать эту ситуацию и выполнить какие-то действия перед
закрытием программы? Допустим записать в файл последней строчкой “Запись была
прервана” и выполнить 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)
Офлайн
На это есть try…finally
Но особо на это не рассчитывайте. Если вырубить питание то не успеете вы ничего записать. В винде например закрытие по ctrl+C обрабатывается в finally блоке а закрытие по крестику нет.
Освобождением ресурсов занимается ядро операционной системы….
Надежнее дать пользователю кнопку - прервать программу да еще показать индикатор выполнения. Тогда есть шанс что пользователь ее нажмет и вы сможете сделать все что вам нужно а потом сами закроете программу.
Отредактировано doza_and (Янв. 21, 2018 23:01:29)
Офлайн