Maison > développement back-end > Tutoriel Python > Comment convertir un objet Bytes en chaîne dans Python 3 ?

Comment convertir un objet Bytes en chaîne dans Python 3 ?

DDD
Libérer: 2024-12-26 02:49:11
original
693 Les gens l'ont consulté

How Do I Convert a Bytes Object to a String in Python 3?

Conversion d'octets en chaîne dans Python 3

Problème :

Vous avez capturé le sortie standard d'un programme externe dans un objet bytes et doit l'afficher sous forme de chaîne. Par exemple :

import subprocess
p = subprocess.Popen(['ls', '-l'], stdout=subprocess.PIPE)
stdout, _ = p.communicate()
Copier après la connexion

Cela donnera un objet bytes comme :

b'total 0\n-rw-rw-r-- 1 thomas thomas 0 Mar  3 07:03 file1\n' 
Copier après la connexion

Votre objectif est de convertir cet objet bytes en une chaîne Python standard.

Solution :

Pour convertir un objet bytes stdout en chaîne dans Python 3, utilisez le méthode decode(). Cette méthode prend l’encodage de l’objet bytes comme argument. Voici comment procéder :

decoded_stdout = stdout.decode("encoding")
Copier après la connexion

Choisir l'encodage :

Le paramètre encoding spécifie le jeu de caractères utilisé pour décoder les octets. Dans l’exemple donné, UTF-8 est considéré comme le codage par défaut. Cependant, il est important d'utiliser le codage réel de vos données.

Si vous ne connaissez pas le codage, vous pouvez essayer d'utiliser "utf-8". Alternativement, vous pouvez utiliser une bibliothèque comme chardet pour détecter automatiquement l'encodage.

Exemple :

Utilisation d'UTF-8 comme encodage supposé :

decoded_stdout = stdout.decode("utf-8")
Copier après la connexion

Vous pouvez maintenant imprimer votre chaîne décodée :

print(decoded_stdout) 
# Output:
# -rw-rw-r-- 1 thomas thomas 0 Mar  3 07:03 file1
Copier après la connexion

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 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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal