Я пишу программу, которая кэширует некоторые результаты через модуль 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
Кажется глупым перезапустить операцию, если она прерывается, поэтому я ищу способ отложить прерывание. Как это сделать?