Поврежденные файлы при создании файлов HDF5 без их закрытия (h5py)

Я использую h5py для хранения экспериментальных данных в контейнере HDF5.

В интерактивном сеансе я открываю файл, используя:

measurement_data = h5py.File('example.hdf5', 'a')

Затем я записываю данные в файл, используя некоторые самописные функции (может быть много ГБ данных за пару дней эксперимента). В конце эксперимента я обычно закрывал файл, используя

measurement_data.close()

К сожалению, время от времени случается, что интерактивный сеанс заканчивается без моего явного закрытия файла (случайное прекращение сеанса, отключение питания, сбой ОС из-за какого-либо другого программного обеспечения). Это всегда приводит к повреждению файла и потере полных данных. Когда я пытаюсь открыть его, я получаю сообщение об ошибке:

OSError: Unable to open file (File signature not found)

Я также не могу открыть файл в HDFview или любом другом программном обеспечении, которое я пробовал.

Есть ли способ избежать поврежденного файла, даже если он явно не закрыт? Я читал об использовании с операторомВот, но я не уверен, поможет ли это, когда сессия неожиданно заканчивается.Можно ли каким-то образом восстановить данные в поврежденных файлах? Доступна ли программа ремонта?

Всегда открывать и закрывать файл для каждого доступа на запись звучит довольно неблагоприятно для меня, потому что я постоянно пишу данные из множества различных функций и потоков. Так что я был бы более счастлив с другим решением.

Ответы на вопрос(2)

Ваш ответ на вопрос