Python - Wie bearbeiten Byte Hexadezimal-Datei für Byte
-
19-09-2019 - |
Frage
Ich möchte in der Lage sein, eine Bilddatei zu öffnen und zusätzliche die Hexadezimalwerte Byte-für-Byte. Ich habe keine Ahnung, wie dies zu tun und „Python-Byte-Bearbeitung“ und „Python Byte-Array“ googeln mit irgendetwas nicht kommen, überraschend. Kann mir jemand Punkt in Richtung der Bibliothek i verwenden müssen, i spezifische Methoden können Google oder Tutorials / guides?
Lösung
Python-Standardbibliothek hat mmap-Modul, das verwendet werden kann, genau dies zu tun. Werfen Sie einen Blick auf der Dokumentation für weitere Informationen.
Andere Tipps
Je nachdem, was Sie tun möchten, könnte es genug sein, um öffnen Sie die Datei in Binär Modus und lesen die Daten mit der normalen Datei Funktionen:
# 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 schert sich nicht wirklich, wenn die data
Zeichenfolge „binäre“ oder „text“ Daten. Wenn Sie nur einfache Änderungen in eine Datei von angemessener Größe zu tun, wollen dies ist wahrscheinlich gut genug.
Der Hachoir Framework ist eine Reihe von Python-Bibliothek und Tools zu analysieren und zu bearbeiten Binärdateien:
http://pypi.python.org/pypi/hachoir-core
Es verfügt über Kenntnisse in gängigen Dateitypen, so könnte dies genau das, was Sie brauchen.
Schauen Sie sich die stuct Modul.
Dieses Modul führt Konvertierungen zwischen Python-Werte und C structs dargestellt als Python-Strings. Es verwendet Formatstrings (siehe unten) als kompakte Beschreibungen der Lay-out des C structs und die beabsichtigten Umwandlung in / aus Python-Werten. Dies kann im Umgang mit binären Daten in Dateien oder von Netzwerkverbindungen gespeichert werden, unter anderen Quellen.