Maison >développement back-end >Tutoriel Python >Comment résoudre l'erreur TypeError : \'str\' ne prend pas en charge l'interface tampon lors de l'utilisation de gzip.open en Python ?

Comment résoudre l'erreur TypeError : \'str\' ne prend pas en charge l'interface tampon lors de l'utilisation de gzip.open en Python ?

Patricia Arquette
Patricia Arquetteoriginal
2024-12-20 11:32:10412parcourir

How to Resolve the TypeError: 'str' does not support the buffer interface when using gzip.open in Python?

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

Question :

Quand en essayant de compresser une chaîne à l'aide de la fonction gzip.open de Python, une erreur est lancé :

TypeError: 'str' does not support the buffer interface

Comment ce problème peut-il être résolu ?

Réponse :

Mise à niveau de Python 3 : En Python 3, les chaînes sont des objets Unicode et n'ont pas d'interface tampon. Pour résoudre le problème, la chaîne doit être convertie en octets avant d'écrire dans le fichier de sortie :

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(plaintext.encode())

Compatibilité du tampon : Pour garantir la compatibilité avec les anciennes versions de Python, spécifiez explicitement l'encodage :

outfile.write(plaintext.encode('utf-8'))

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