Maison > développement back-end > Tutoriel Python > Comment convertir efficacement des chaînes en octets dans Python 3 ?

Comment convertir efficacement des chaînes en octets dans Python 3 ?

Linda Hamilton
Libérer: 2024-12-15 17:19:10
original
572 Les gens l'ont consulté

How to Efficiently Convert Strings to Bytes in Python 3?

Comment convertir une chaîne en octets dans Python 3 avec un style pythonique optimal

Lorsque vous rencontrez l'erreur "TypeError : 'str' ne prend pas en charge l'interface tampon", vous avez deux options pour convertir une chaîne en octets :

  1. b = bytes(mystring, 'utf-8')
  2. b = mystring.encode('utf-8')

Choisir la méthode la plus pythonique

La documentation Python pour le type bytes suggère d'utiliser bytearray comme méthode préférée pour initialiser un tableau d'octets à partir d'un string :

bytearray([source[, encoding[, errors]]])
Copier après la connexion

Dans cet esprit, puisque les octets peuvent effectuer diverses tâches au-delà de l'encodage de chaînes, il est logique que le constructeur accepte différents types de paramètres source.

Pour le codage de chaîne en particulier, l'utilisation de some_string.encode(encoding) est plus pythonique que bytes(some_string, encodage) :

  • Le premier est plus explicite quant au but recherché : encoder une chaîne avec un encodage spécifique.
  • Le second n'a pas de verbe explicite et est moins clair sur sa fonction.

De plus, unicode_string.encode(encoding) est également plus pythonique car son inverse est byte_string.decode(encoding), en maintenant la symétrie.

Optimisation des performances avec CPython

Si vous utilisez CPython, passer une chaîne Unicode à bytes appelle directement PyUnicode_AsEncodedString, qui est le sous-jacent implémentation de l'encodage. Par conséquent, appeler encode vous-même élimine un niveau d’indirection inutile et améliore potentiellement les performances.

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal