Python – Как редактировать шестнадцатеричный файл побайтно
-
19-09-2019 - |
Вопрос
Я хочу иметь возможность открывать файл изображения и побайтно добавлять шестнадцатеричные значения.Я понятия не имею, как это сделать, и поиск в Google «редактирование байтов Python» и «массив байтов Python» на удивление ничего не дал.Может ли кто-нибудь указать мне на библиотеку, которую мне нужно использовать, конкретные методы, которые я могу использовать в Google, или учебные пособия/руководства?
Решение
В стандартной библиотеке Python есть модуль mmap, который можно использовать именно для этого.Взгляните на документация для дополнительной информации.
Другие советы
В зависимости от того, что вы хотите сделать, этого может быть достаточно открыть файл в двоичном режиме и прочитайте данные обычным способом файл функции:
# load it
with open("somefile", 'rb') as f:
data = f.read()
# do something with data
data.reverse()
# save it
with open("somefile.new", 'wb') as f:
f.write(data)
Python на самом деле не волнует, если data
строка содержит «двоичные» или «текстовые» данные.Если вы просто хотите внести простые изменения в файл разумного размера, этого, вероятно, будет достаточно.
Фреймворк Hachoir представляет собой набор библиотеки Python и инструментов для анализа и редактирования двоичных файлов:
http://pypi.python.org/pypi/hachoir-core
Он знает распространенные типы файлов, так что это может быть именно то, что вам нужно.
Проверьте здание модуль.
Этот модуль выполняет преобразования между значениями Python и структурами C, представленными в виде строк Python.Он использует строки формата (поясняемые ниже) в качестве компактного описания структуры структур C и предполагаемого преобразования в/из значений Python.Это можно использовать для обработки двоичных данных, хранящихся в файлах или из сетевых подключений, а также из других источников.