Wie behebt man \'TypeError: \'str\' unterstützt die Pufferschnittstelle nicht\' in der Python-GZIP-Komprimierung?

DDD
Freigeben: 2024-11-26 16:10:15
Original
425 Leute haben es durchsucht

How to Fix

Fehlerbehebung „TypeError: 'str' unterstützt die Pufferschnittstelle nicht“ in der Python-GZIP-Komprimierung

Beim Komprimieren von Zeichenfolgen mit dem gzip-Modul von Python Entwickler können auf den Fehler „TypeError: ‚str‘ unterstützt die Pufferschnittstelle nicht“ stoßen. Dieser Fehler ist auf den Übergang von Python 2.x zu Python 3.x zurückzuführen, bei dem sich der String-Datentyp geändert hat.

Um dieses Problem zu beheben, ist es notwendig, den String vor dem Schreiben in Bytes in Bytes zu codieren Ausgabedatei. Der folgende Codeausschnitt korrigiert den in der Frage bereitgestellten Code:

plaintext = input("Please enter the text you want to compress").encode('UTF-8')
filename = input("Please enter the desired filename")
with gzip.open(filename + ".gz", "wb") as outfile:
    outfile.write(plaintext)
Nach dem Login kopieren

Durch die Kodierung des Klartexts in Bytes stellen wir die Kompatibilität mit dem überarbeiteten String-Datentyp in Python 3.x sicher. Um Verwirrung zu vermeiden, wird außerdem empfohlen, unterschiedliche Variablennamen für die Eingabe- und Ausgabedateien zu verwenden, da „Klartext“ und „Dateiname“ reservierte Wörter in Python sind.

Der folgende Code zeigt beispielsweise, wie das geht Polnischen Text effektiv mit UTF-8-Kodierung komprimieren:

text = 'Polish text: ąćęłńóśźżĄĆĘŁŃÓŚŹŻ'
filename = 'foo.gz'
with gzip.open(filename, 'wb') as outfile:
    outfile.write(bytes(text, 'UTF-8'))
with gzip.open(filename, 'r') as infile:
    decompressed_text = infile.read().decode('UTF-8')
print(decompressed_text)
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonWie behebt man \'TypeError: \'str\' unterstützt die Pufferschnittstelle nicht\' in der Python-GZIP-Komprimierung?. 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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage