Можно ли перехватить событие завершения процесса python-приложения и сбросить часть его данных на диск?
Допустим приложение командной строки на python многократно выдает пользователю текст и ожидает ввод, результаты которого должны быть обработаны и сохранены на диске. Что бы экономить ресурс жесткого диска я хочу записывать на диск не после каждого ввода, а накапливать по 50 вводов в памяти и сбрасывать на диск. Учитывая то, что пользователи имеют привычку закрывать cli-приложения на Ctrl+z или закрытием терминала, как можно обеспечить сброс данных в момент такого аварийного закрытия?
import os
def exiting():
with open(workdir + '/exiting.txt', 'w') as f:
f.write('exiting')
import atexit
atexit.register(exiting)
workdir = os.path.abspath(os.path.dirname(__file__))
while True:
input()
atexit отрабатывает только при завершении через Ctrl+z, при закрытии терминала bash предупреждает об открытом в этой сессии процессе, на ответ Ok закрывается и atexit не отрабатывает, cmd и powershell просто закрываются и atexit не отрабатывает.
Как я понимаю, такую ситуацию обработать уже невозможно