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)
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)
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!