Каждый день я храню данные в один файл полки. Сегодня я обнаружил, что некоторые последние ключи отсутствуют. Размер dat-файла не изменяется. Файл dir и файл bak содержат все ключи, кроме некоторых последних ключей. Как я могу воссоздать эти файлы или как я могу повторно проверить свой файл данных и восстановить все сохраненные элементы?Как я могу восстановить 'dir' для shelve db
0
A
ответ
1
Я решил свою проблему с помощью шестнадцатеричного редактора и рук. Существуют простые шаги:
открытый файл с шестнадцатеричным редактором.
открыть наш реж файл данных
находят смещение. Он должен быть равен 0. Это смещение 1. Fig 1
найти блок из десяти нулей и найти смещение в начале этого блока. Это смещение 2. Fig 2
смещение смещения 1 от смещения 2. В моем случае это 71768182 - 0 = 71768182. Это длина данных.
Мы должны написать дир файла:
'1', (0, 71768182)
1 - ключ этого элемента в нашей БД.
0 - смещение стартового блока данных
71768182 - длина блока данных;
Перейти к началу нового блока данных. Fig 3
- Перейти к шагу 3