Python – Как редактировать шестнадцатеричный файл побайтно

StackOverflow https://stackoverflow.com/questions/1322508

  •  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.Это можно использовать для обработки двоичных данных, хранящихся в файлах или из сетевых подключений, а также из других источников.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top