ホームページ > バックエンド開発 > Python チュートリアル > TypeError を解決する方法: \'str\' はテキストを圧縮するときに Python 3 のバッファー インターフェイスをサポートしていませんか?

TypeError を解決する方法: \'str\' はテキストを圧縮するときに Python 3 のバッファー インターフェイスをサポートしていませんか?

DDD
リリース: 2024-11-26 12:06:12
オリジナル
707 人が閲覧しました

How to Resolve TypeError: 'str' Does Not Support the Buffer Interface in Python 3 When Compressing Text?

TypeError: 'str' Does Not Support the Buffer Interface

Python3 を使用すると、文字列の個別の処理が原因でこのエラーが発生する可能性がありますPython2との比較。この問題を解決するには、文字列をバイトにエンコードする必要があります。

plaintext = input("Please enter the text you want to compress")
filename = input("Please enter the desired filename")
with gzip.open(filename + ".gz", "wb") as outfile:
    outfile.write(bytes(plaintext, 'UTF-8'))
ログイン後にコピー

Python3 では、文字列は Python2 の文字列と同一ではないため、bytes() 関数を使用する必要があります。さらに、「string」や「file」などの変数名は、すでに関数またはモジュールとして定義されているため、避けることを検討してください。

非 ASCII 文字を含む包括的なテキスト圧縮の場合、提供されるコードは UTF-8 エンコーディングを利用して、ポーランド語文字の完全性を確保します。

plaintext = 'Polish text: ąćęłńóśźżĄĆĘŁŃÓŚŹŻ'
filename = 'foo.gz'
with gzip.open(filename, 'wb') as outfile:
    outfile.write(bytes(plaintext, 'UTF-8'))
with gzip.open(filename, 'r') as infile:
    outfile_content = infile.read().decode('UTF-8')
print(outfile_content)
ログイン後にコピー

以上がTypeError を解決する方法: 'str' はテキストを圧縮するときに Python 3 のバッファー インターフェイスをサポートしていませんか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート