Я пишу программу, которая кэширует некоторые результаты через модуль pickle. То, что происходит на данный момент, заключается в том, что если я нажму ctrl-c во время выполнения операции dump, dump будет прерван, а результирующий файл будет поврежден (т.е. Только частично написан, поэтому он не может быть load ed снова.
Есть ли способ сделать dump, или вообще блок кода, бесперебойным? Мое текущее обходное решение выглядит примерно так:
try:
file = open(path, 'w')
dump(obj, file)
file.close()
except KeyboardInterrupt:
file.close()
file.open(path,'w')
dump(obj, file)
file.close()
raise
Кажется глупым перезапустить операцию, если она прерывается, поэтому я ищу способ отложить прерывание. Как это сделать?