Мне нужно добавить начало или середину двоичного файла, и этот файл может быть большим (от 100 МБ до 15 ГБ).Большинство ответов, которые я видел до сих пор, либо не содержат большие файлы, либо полностью переписывают файл полностью.Надеясь избежать метода «запись в новый файл и замена старого файла», если это вообще возможно.На мой взгляд, что-то вроде этого должно быть в состоянии добавить данные, например, из 60-го байта:
with open('file.dat', 'ab') as f:
f.seek(60)
f.write(b'_hello_world_')
Однако это не работает должным образом, скорее он добавляется в конец файла.Все еще пытаюсь понять, как не работает предыдущий пример, но использование io.BytesIO()
работает таким же образом.Надеюсь, я просто пропускаю что-то простое.