Рассол Python повреждается каждый раз, когда мой компьютер выходит из строя. Сохранить во временный файл и заменить тоже не работает

#python #pickle

Вопрос:

Я запускал программу машинного обучения python на своем компьютере с Windows. Он обновляет файл рассола объемом 340 МБ каждые 1-2 секунды. А потом я играю в видеоигры, пока он работает. Игра выходит из строя каждые 1-2 дня. Самое странное, что каждый раз, когда игра выходит из строя, файл pickle повреждается. Программа больше не может его распаковать.

Сообщение об ошибке было:

 pickle.UnpicklingError: invalid load key, 'x00'.
 

Практически невозможно, чтобы игра вышла из строя во время сохранения файла. Сохранение файла заняло менее 0,01 секунды в цикле 1-2 секунды.

Сначала я попытался перейти к временному файлу , а затем os.replace(temp_file, real_file) , чтобы при сбое во время сохранения файла, я увидел бы, что временный файл все еще там после сбоя.

 with open("temp_file", "wb") as outp:
    pickle.dump(my_data, outp, pickle.HIGHEST_PROTOCOL)
os.replace("temp_file", "real_file")
 

Но там нет временного файла, только настоящий файл. Это означает, что сбой не произошел во время сохранения файла. Тогда как же файл pickle мог быть поврежден? Ошибка Python?