Я работаю над сценарием на Python, который отображает файл для обработки с помощью mmap ().
Для выполнения этих задач требуется изменить содержимое файла на
- Замена данных
- Добавление данных в файл со смещением
- Удаление данных из файла (не выбрасывая их)
Замена данных прекрасно работает до тех пор, пока старые данныеи новые данные имеют такое же количество байтов:
VDATA = mmap.mmap(f.fileno(),0)
start = 10
end = 20
VDATA[start:end] = "0123456789"
Однако, когда я пытаюсь удалить данные (заменив диапазон на "") или вставив данные (заменив диапазон содержимым, длина которого превышает диапазон), Я получаю сообщение об ошибке:
IndexError: назначение фрагмента mmap неправильного размера
Это имеет смысл.
Теперь вопрос в том, как можноВставить и удалить данные из файла mmap?Из прочтения документации кажется, что я могу перемещать все содержимое файла назад и вперед, используя цепочку низкоуровневых действий, но я бы предпочел этого избежать, если есть более простое решение.