Codieren und Decodieren von Bytes in Python: Eine Anleitung zur String-Konvertierung
Bytes-Objekte werden häufig bei der Interaktion mit externen Programmen oder beim Umgang mit Binärdaten angetroffen . Um effektiv mit ihnen arbeiten zu können, ist möglicherweise eine Konvertierung in und aus Strings erforderlich. In diesem Artikel wird ein spezifisches Problem bei der Konvertierung eines Bytes-Objekts, das die Ausgabe eines externen Befehls enthält, in einen regulären Python-String behandelt.
Das Problem: Bytes in String konvertieren
Betrachten Sie das folgende Beispiel aus Python 3:
>>> from subprocess import * >>> stdout = Popen(['ls', '-l'], stdout=PIPE).communicate()[0] >>> stdout b'total 0\n-rw-rw-r-- 1 thomas thomas 0 Mar 3 07:03 file1\n-rw-rw-r-- 1 thomas thomas 0 Mar 3 07:03 file2\n'
Die stdout-Variable enthält ein Bytes-Objekt, das die Ausgabe von „ls -l“ darstellt. Befehl. Um es in einem für Menschen lesbaren Format zu drucken, muss es in eine Zeichenfolge konvertiert werden.
Lösung: Verwendung der Decode-Methode
Die Methode decode() wird verwendet um ein Byte-Objekt in einen String umzuwandeln. Es benötigt einen Kodierungsparameter, der die Zeichenkodierung der Daten im Byteobjekt angibt.
>>> stdout_str = stdout.decode('utf-8') >>> print(stdout_str) -rw-rw-r-- 1 thomas thomas 0 Mar 3 07:03 file1 -rw-rw-r-- 1 thomas thomas 0 Mar 3 07:03 file2
In diesem Beispiel geben wir „utf-8“ als Kodierung an, da es sich um eine übliche Kodierung für Text handelt Daten. Es ist jedoch wichtig, die richtige Codierung für die spezifischen zu verarbeitenden Daten zu verwenden.
Hinweis:
Während sich die obige Lösung gut für die Konvertierung von Byte-Objekten eignet, die Textdaten darstellen , ist es wichtig zu beachten, dass nicht alle Bytes-Objekte Text enthalten. Für den Umgang mit Binärdaten sind möglicherweise unterschiedliche Techniken erforderlich.
Das obige ist der detaillierte Inhalt vonWie konvertiere ich Bytes-Objekte von externen Befehlen in Strings in Python?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!