Maison >développement back-end >Tutoriel Python >Comment corriger \'TypeError : \'str\' ne prend pas en charge l'interface tampon\' dans gzip.open() de Python 3 ?

Comment corriger \'TypeError : \'str\' ne prend pas en charge l'interface tampon\' dans gzip.open() de Python 3 ?

Susan Sarandon
Susan Sarandonoriginal
2024-11-26 02:40:111015parcourir

How to Fix

TypeError : 'str' ne prend pas en charge l'interface tampon

Lorsque vous essayez d'utiliser la fonction gzip.open() avec Python 3, une erreur peut survenir : "TypeError : 'str' ne prend pas en charge l'interface tampon." Cette erreur provient de la différence entre la gestion des chaînes dans Python 3 et ses prédécesseurs.

Dans Python 3, les objets chaîne ne sont pas directement compatibles avec l'interface tampon, ce qui oblige à les convertir en octets avant de les écrire dans un fichier compressé. Cela peut être accompli en encodant la chaîne avec un encodage approprié, tel que UTF-8 :

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)

De plus, il est recommandé d'éviter d'utiliser des mots-clés tels que "string" et "file" comme noms de variables, car ils entrent en conflit avec les modules et fonctions intégrés.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn