[PYTHON] Convertir un fichier texte avec des valeurs hexadécimales en fichier binaire

Aperçu

--Fichier texte hexadécimal-> Convertir en fichier binaire

test.txt


1234567890abcdef

↓ Fichier binaire test.bin test.bin.png

Pour python3.2 ou version ultérieure dans cet exemple, utilisez 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"))

C'est facile à faire.

Ce qui suit est le code quand il correspond même s'il y a des blancs ou des sauts de ligne.

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) Les sauts de ligne / tabulations / espaces demi-largeur et «0x» sont supprimés (remplacés).

bins = [int(a+b,16) for a, b in zip(s[::2], s[1::2])] Les paires de a et b sont retirées pour former un nombre hexadécimal et mises dans la liste.

Si vous affichez pour a, b dans zip (s [:: 2], s [1 :: 2]) plus en détail, cela fonctionne comme suit.

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

Exemple de conversion 1

Comme décrit dans le schéma

Exemple de conversion 2

test2.txt


0x12 0x34 0x56 0x78 0x90

test2.png

Exemple de conversion 3

test3.txt


1234
56789
abc
def

test3.png

Une autre méthode

Recherchez Stack Overflow en vous référant à la méthode de @ shiracamu en python2. Dans l'ensemble, il semble que python3 puisse être écrit comme suit en utilisant des codecs.

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])

référence

Recommended Posts

Convertir un fichier texte avec des valeurs hexadécimales en fichier binaire
Convertir une chaîne hexadécimale en binaire
Convertir le HTML en fichier texte
Créer un gros fichier texte avec shellscript
J'ai essayé de créer un programme qui convertit les nombres hexadécimaux en nombres décimaux avec python
Comment lire un fichier CSV avec Python 2/3
Parler en japonais avec OpenJtalk (lire un fichier texte)
Parler en japonais avec gTTS (lire un fichier texte)
Convertir un fichier svg en png / ico avec Python
Convertir les valeurs d'époque Windows à ce jour avec python
Enregistrer l'objet dans un fichier avec pickle
Je veux écrire dans un fichier avec Python
Convertir 202003 en 2020-03 avec les pandas
Je souhaite afficher uniquement différentes lignes du fichier texte avec diff
Comment convertir / restaurer une chaîne avec [] en python
[Python] Convertit les nombres décimaux en nombres binaires, octaux et hexadécimaux
Comment convertir un objet de classe en dictionnaire avec SQLAlchemy
Comment convertir un fichier JSON en fichier CSV avec Python Pandas
Comment convertir un spectrogramme Mel en un fichier wav
Sortie d'un vidage binaire en binaire et retour dans un fichier binaire
Télécharger un fichier sur Dropbox
Exporter un fichier texte compressé gzip
Convertir le fichier genbank en fichier gff
Comment mettre un lien hypertexte vers "file: // hogehoge" avec sphinx-> pdf
Comment convertir un tableau en dictionnaire avec Python [Application]
[Caffe] Convertit le fichier moyen du format proto binaire au format npy
Convertir un fichier Excel en texte en Python à des fins de comparaison
Convertir .ipynb en .html (avec BatchFile)
J'ai essayé de transformer un fichier Python en un EXE (erreur de récursivité prise en charge)
[Python] Ecrire dans un fichier csv avec Python
Convertir un PDF A4 en A3 toutes les 2 pages
Créer un fichier deb avec Docker
Sortie vers un fichier csv avec Python
Que faire lorsque vous obtenez des correspondances de fichier binaire (entrée standard) après la greffe d'un fichier texte
Écrire la sortie standard dans un fichier
Comment faire une commande pour lire le fichier de paramètres avec pyramide
Diff d'un fichier binaire (fichier image, etc.)
Créer un fichier binaire en Python
Convertir la liste en DataFrame avec python
Convertir des phrases en vecteurs avec gensim
Je souhaite rechercher le texte intégral avec elasticsearch + python
Convertissez un grand nombre de fichiers PDF en fichiers texte à l'aide de pdfminer
Télécharger le logo Google → Texte avec OCR → Affichage sur HTML
Convertir une chaîne en image
Convertir un PDF en image avec ImageMagick
Outil pour convertir la configuration Juniper
[ROS2] Comment lire un fichier bag avec le lancement au format python
Essayez d'ajouter un mur à votre fichier IFC avec IfcOpenShell python
Comment créer un fichier de configuration
Créer un téléchargeur de fichiers avec Django
[Python] Comment extraire / supprimer / convertir une matrice contenant des valeurs manquantes (NaN)
Extraire les lignes qui correspondent aux conditions d'un fichier texte avec python
J'ai créé un outil pour convertir Jupyter py en ipynb avec VS Code
Lisez le fichier CSV avec Python et convertissez-le en DataFrame tel quel
[Python] Comment convertir un fichier db en csv
Créer un fichier power simple avec Python
Reconnaissance vocale en anglais avec python [speech to text]
Convertir un mémo à la fois avec Python 2to3