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))
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)
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()
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 & 1)))
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!