[PYTHON] Konvertieren Sie eine Textdatei mit hexadezimalen Werten in eine Binärdatei

Überblick

--Hexary Textdatei-> In Binärdatei konvertieren

test.txt


1234567890abcdef

↓ Binärdatei test.bin test.bin.png

Verwenden Sie für Python3.2 oder höher in diesem Beispiel int.to_bytes.

python


with open("test.txt") as fin,  open("test.bin", "wb") as fout:
    s = fin.read()
    fout.write(int(s,16).to_bytes(len(s)//2,"big"))

Es ist einfach zu machen.

Das Folgende ist der Code, wenn er auch dann entspricht, wenn Leerzeichen oder Zeilenumbrüche vorhanden sind.

Code

python


import re
with open('test.txt', 'r') as fin:
  s = fin.read()
  s = re.sub(r'[\r\n\t ]|0x', '', s)
  bins = [int(a+b,16) for a, b in zip(s[::2], s[1::2])]
  with open('test.bin', 'wb') as fout:
     fout.write(bytearray(bins))

s = re.sub(r'[\r\n\t ]|0x', '', s) Zeilenumbrüche / Tabulatoren / Leerzeichen halber Breite und "0x" werden gelöscht (ersetzt).

bins = [int(a+b,16) for a, b in zip(s[::2], s[1::2])] Die Paare von a und b werden herausgenommen, um eine Hexadezimalzahl zu bilden, und in die Liste aufgenommen.

Wenn Sie "für a, b in zip (s [:: 2], s [1 :: 2])" etwas detaillierter anzeigen, funktioniert dies wie folgt.

In [59]: s = "1234567890abcdef"
    ...: for a, b in zip(s[::2], s[1::2]):
    ...:     print(f"a={a}, b={b}")
a=1, b=2
a=3, b=4
a=5, b=6
a=7, b=8
a=9, b=0
a=a, b=b
a=c, b=d
a=e, b=f

Konvertierungsbeispiel 1

Wie in der Gliederung beschrieben

Konvertierungsbeispiel 2

test2.txt


0x12 0x34 0x56 0x78 0x90

test2.png

Konvertierungsbeispiel 3

test3.txt


1234
56789
abc
def

test3.png

Eine andere Methode

Search Stack Overflow unter Bezugnahme auf die Methode von @ shiracamu in python2. Insgesamt scheint es, dass Python3 mit Codecs wie folgt geschrieben werden kann.

with_codecs.py


import codecs
with open('test.txt', 'r') as fin, open('test.bin', 'wb') as fout:
  s = re.sub(r'[\r\n\t ]|0x', '', fin.read())
  fout.write(bytearray(codecs.getdecoder("hex_codec")(s)[0])

Referenz

Recommended Posts

Konvertieren Sie eine Textdatei mit hexadezimalen Werten in eine Binärdatei
Konvertieren Sie eine hexadezimale Zeichenfolge in eine Binärzeichenfolge
Konvertieren Sie HTML in eine Textdatei
Erstellen Sie eine große Textdatei mit Shellscript
Ich habe versucht, ein Programm zu erstellen, das Hexadezimalzahlen mit Python in Dezimalzahlen konvertiert
Lesen einer CSV-Datei mit Python 2/3
Mit OpenJtalk auf Japanisch sprechen (Textdatei lesen)
Mit gTTS auf Japanisch sprechen (Textdatei lesen)
Konvertieren Sie die SVG-Datei mit Python in png / ico
Konvertieren Sie Windows-Epochenwerte mit Python in das Datum
Speichern Sie das Objekt in einer Datei mit pickle
Ich möchte mit Python in eine Datei schreiben
Konvertieren Sie 202003 bis 2020-03 mit Pandas
Ich möchte nur verschiedene Zeilen der Textdatei mit diff anzeigen
So konvertieren / wiederherstellen Sie einen String mit [] in Python
[Python] Konvertieren Sie Dezimalzahlen in Binär-, Oktal- und Hexadezimalzahlen
So konvertieren Sie ein Klassenobjekt mit SQLAlchemy in ein Wörterbuch
So konvertieren Sie eine JSON-Datei mit Python Pandas in eine CSV-Datei
So konvertieren Sie ein Mel-Spektrogramm zurück in eine WAV-Datei
Geben Sie einen Binärspeicherauszug in Binärdatei und zurück in eine Binärdatei aus
Laden Sie eine Datei in Dropbox hoch
Exportieren Sie eine komprimierte gzip-Textdatei
Konvertieren Sie die Genbank-Datei in die GFF-Datei
So setzen Sie einen Hyperlink zu "file: // hogehoge" mit sphinx-> pdf
So konvertieren Sie mit Python [Anwendung] von einem Array in ein Wörterbuch
[Caffe] Konvertiert die mittlere Datei vom binären Proto-Format in das npy-Format
Konvertieren Sie eine Excel-Datei für verschiedene Zwecke in Python in Text
Konvertieren Sie .ipynb in .html (mit BatchFile)
Ich habe versucht, eine Python-Datei in eine EXE-Datei zu verwandeln (Rekursionsfehler unterstützt)
[Python] Mit Python in eine CSV-Datei schreiben
Konvertieren Sie A4 PDF alle 2 Seiten in A3
Erstellen Sie eine Deb-Datei mit Docker
Ausgabe in eine CSV-Datei mit Python
Was tun, wenn Sie nach dem Durchsuchen einer Textdatei Übereinstimmungen mit Binärdateien (Standardeingabe) erhalten?
Schreiben Sie die Standardausgabe in eine Datei
So erstellen Sie einen Befehl zum Lesen der Einstellungsdatei mit Pyramide
Diff eine Binärdatei (Bilddatei, etc.)
Erstellen Sie eine Binärdatei in Python
Konvertieren Sie die Liste mit Python in DataFrame
Konvertieren Sie Sätze mit gensim in Vektoren
Ich möchte den vollständigen Text mit elasticsearch + python durchsuchen
Konvertieren Sie eine große Anzahl von PDF-Dateien mit pdfminer in Textdateien
Google-Logo herunterladen → Text mit OCR → In HTML anzeigen
Konvertieren Sie eine Zeichenfolge in ein Bild
Konvertieren Sie PDF in Image mit ImageMagick
Tool zum Konvertieren der Juniper-Konfiguration
[ROS2] So spielen Sie eine Bag-Datei mit Start im Python-Format ab
Versuchen Sie, Ihrer IFC-Datei mit IfcOpenShell Python eine Wand hinzuzufügen
So erstellen Sie eine Konfigurationsdatei
Erstellen Sie mit Django einen Datei-Uploader
[Python] So extrahieren / löschen / konvertieren Sie eine Matrix mit fehlenden Werten (NaN)
Extrahieren Sie mit Python Zeilen, die den Bedingungen entsprechen, aus einer Textdatei
Ich habe ein Tool erstellt, um Jupyter py mit VS Code in ipynb zu konvertieren
Lesen Sie die CSV-Datei mit Python und konvertieren Sie sie unverändert in DataFrame
[Python] So konvertieren Sie eine Datenbankdatei in CSV
Erstellen einer einfachen Power-Datei mit Python
Englische Spracherkennung mit Python [Rede zu Text]
Konvertieren Sie Memos sofort mit Python 2to3