Heim >Backend-Entwicklung >Python-Tutorial >Wie konvertiere ich Bytes-Objekte von externen Befehlen in Strings in Python?

Wie konvertiere ich Bytes-Objekte von externen Befehlen in Strings in Python?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-12-19 09:52:09819Durchsuche

How Do I Convert Bytes Objects from External Commands to Strings in Python?

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!

Stellungnahme:
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