2009-11-24 2 views
2

Я пытаюсь выяснить, как обновить данные в двоичном файле с помощью Python.Обновление значения в двоичном файле с помощью Python

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

Вот что я пробовал:

my_file.seek(100) 

my_array = array.array('B') 
my_array.append(0) 
my_array.tofile(my_file) 

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

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

ответ

5

Согласно the documentation of open(), вы должны открыть файл в режиме 'rb+', чтобы избежать усечения.

+0

Именно так. Благодаря! Поскольку я открывал файл для записи, я открыл его в «wb +», что имело больше смысла. Это то, что я получаю от того, что я не читал документы полностью. –

Смежные вопросы