Heim >Backend-Entwicklung >Python-Tutorial >Wie konvertiere ich ein Bytes-Objekt in einen String in Python 3?

Wie konvertiere ich ein Bytes-Objekt in einen String in Python 3?

DDD
DDDOriginal
2024-12-26 02:49:11627Durchsuche

How Do I Convert a Bytes Object to a String in Python 3?

Konvertieren von Bytes in einen String in Python 3

Problem:

Sie haben das erfasst Standardausgabe eines externen Programms in ein Bytes-Objekt und muss es als Zeichenfolge anzeigen. Zum Beispiel:

import subprocess
p = subprocess.Popen(['ls', '-l'], stdout=subprocess.PIPE)
stdout, _ = p.communicate()

Dies führt zu einem Byte-Objekt wie:

b'total 0\n-rw-rw-r-- 1 thomas thomas 0 Mar  3 07:03 file1\n' 

Ihr Ziel ist es, dieses Byte-Objekt in einen Standard-Python-String umzuwandeln.

Lösung:

Um ein Byte-Objekt stdout in einen String in Python 3 zu konvertieren, verwenden Sie die decode()-Methode. Diese Methode verwendet die Codierung des Bytes-Objekts als Argument. So geht's:

decoded_stdout = stdout.decode("encoding")

Kodierung auswählen:

Der Kodierungsparameter gibt den Zeichensatz an, der zum Dekodieren der Bytes verwendet wird. Im angegebenen Beispiel wird UTF-8 als Standardkodierung angenommen. Es ist jedoch wichtig, die tatsächliche Kodierung Ihrer Daten zu verwenden.

Wenn Sie die Kodierung nicht kennen, können Sie es mit „utf-8“ versuchen. Alternativ können Sie eine Bibliothek wie chardet verwenden, um die Kodierung automatisch zu erkennen.

Beispiel:

Verwendung von UTF-8 als angenommene Kodierung:

decoded_stdout = stdout.decode("utf-8")

Sie können jetzt Ihre dekodierte Zeichenfolge ausdrucken:

print(decoded_stdout) 
# Output:
# -rw-rw-r-- 1 thomas thomas 0 Mar  3 07:03 file1

Das obige ist der detaillierte Inhalt vonWie konvertiere ich ein Bytes-Objekt in einen String in Python 3?. 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