Heim > Backend-Entwicklung > Python-Tutorial > Wie konvertiert man Binärdateien in Python effizient in ASCII und umgekehrt?

Wie konvertiert man Binärdateien in Python effizient in ASCII und umgekehrt?

Linda Hamilton
Freigeben: 2024-11-28 10:06:13
Original
110 Leute haben es durchsucht

How to Efficiently Convert Binary to ASCII and Vice Versa in Python?

Binär in ASCII konvertieren und umgekehrt

Die Konvertierung zwischen Binär und ASCII ist für die Kodierung und Dekodierung digitaler Daten unerlässlich. Hier sind Methoden, um diese Konvertierung effektiv in Python durchzuführen und die von Ihnen genannten Herausforderungen zu bewältigen:

String in Binär konvertieren

Um einen String in Binär umzuwandeln, können Sie Folgendes verwenden:

import binascii
bin(int(binascii.hexlify('hello'), 16))
Nach dem Login kopieren

Dadurch wird die Zeichenfolge in eine Hex-Darstellung und dann in eine Binärdarstellung umgewandelt, wodurch die gleiche Ausgabe wie bei Ihnen entsteht erhalten.

Binär in String konvertieren

Für die Konvertierung von Binär in String verwenden Sie Folgendes:

n = int('0b110100001100101011011000110110001101111', 2)
binascii.unhexlify('%x' % n)
Nach dem Login kopieren

Dadurch wird der Binärstring in einen Hexadezimalwert umgewandelt Wert und dekodiert ihn dann in die Originalzeichenfolge.

Python 3.2 Kompatibilität

In Python 3.2 und höher können Sie die folgenden Methoden verwenden:

bin(int.from_bytes('hello'.encode(), 'big'))
n = int('0b110100001100101011011000110110001101111', 2)
n.to_bytes((n.bit_length() + 7) // 8, 'big').decode()
Nach dem Login kopieren

Diese Methoden nutzen die Funktionen int.from_bytes() und int.to_bytes() und stellen bereit eine effiziente Möglichkeit, Binärdaten zu verarbeiten.

Unterstützung von Unicode-Zeichen (Python 3)

Um Unicode-Zeichen in Python 3 zu verarbeiten, verwenden Sie:

def text_to_bits(text, encoding='utf-8', errors='surrogatepass'):
    bits = bin(int.from_bytes(text.encode(encoding, errors), 'big'))[2:]
    return bits.zfill(8 * ((len(bits) + 7) // 8))

def text_from_bits(bits, encoding='utf-8', errors='surrogatepass'):
    n = int(bits, 2)
    return n.to_bytes((n.bit_length() + 7) // 8, 'big').decode(encoding, errors) or '<pre class="brush:php;toolbar:false">import binascii

def text_to_bits(text, encoding='utf-8', errors='surrogatepass'):
    bits = bin(int(binascii.hexlify(text.encode(encoding, errors)), 16))[2:]
    return bits.zfill(8 * ((len(bits) + 7) // 8))

def text_from_bits(bits, encoding='utf-8', errors='surrogatepass'):
    n = int(bits, 2)
    return int2bytes(n).decode(encoding, errors)

def int2bytes(i):
    hex_string = '%x' % i
    n = len(hex_string)
    return binascii.unhexlify(hex_string.zfill(n + (n &amp; 1)))
Nach dem Login kopieren
'

Diese Funktionen kodieren und dekodieren Text mit einer angegebenen Kodierung und Fehlerbehandlung und stellen so die korrekte Handhabung von Unicode sicher Zeichen.

Single-Source Python 2/3-kompatible Version

Dies Der Code ist sowohl mit Python 2 als auch mit 3 kompatibel:

Dieser Code verarbeitet beide Python-Versionen und bietet gleichzeitig einen konsistenten Satz von Funktionen für Binär- und ASCII-Konvertierungen.

Das obige ist der detaillierte Inhalt vonWie konvertiert man Binärdateien in Python effizient in ASCII und umgekehrt?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage