Как вставить шестнадцатеричное значение в определенную позицию файла в Python?

#python #hex #hexdump

#python #шестнадцатеричное #шестнадцатеричный дамп

Вопрос:

Я хочу добавить 2 байта (0000) в конец определенного сегмента файла (в шестнадцатеричном формате) без изменения существующих данных.

От:

 00000    FFD8 FFE0 0010 4A46 4946 0001 0101 0048 0048 FFEE
00014    000E 4164 6F62 6500 ....
.....
  

Для:

 00000    FFD8 FFE0 0010 4A46 4946 0001 0101 0048 0048 0000 <---
00014    FFEE 000E 4164 6F62 6500 ....
.....
  

Проблема в том, что файл может быть очень большим (до 50 МБ), поэтому я не могу просто внести это крошечное изменение и переписать каждый байт в новый файл.

Итак, все, что я хочу сделать, это расширить существующий сегмент (добавив 0000), не касаясь остальной части файла. (И да, я знаю, что я не могу добавить новое значение в память без изменения других адресов, связанных с данными).

Есть ли какой-либо способ сделать это в Python?

Комментарии:

1. Невозможно добавить данные — какими бы маленькими они ни были — в середину файла без перезаписи указанного файла. Однако, если вы читаете и записываете файл большими порциями, это должно быть достаточно быстро.

2. Грустно. В любом случае спасибо.