Octets à chaîner en python

Octets à chaîner en python

À Python, chaque fois que nous stockons quoi que ce soit, il le stockera comme un octet. Les octets ne sont pas lisibles par l'homme et les cordes sont des formes lisibles par l'homme. Chaque fois que nous stockons une chaîne, il ne le stockera pas directement sous forme de chaîne; Il sera codé dans les octets en utilisant différentes méthodes comme ASCII et UTF-8.

Par exemple, 'Je suis un Linuxhint'.Encoder ('ASCII')

Dans l'exemple ci-dessus, nous convertissons la chaîne en octets en utilisant la méthode d'encode ASCII. Et lorsque nous l'imprimons en utilisant la méthode d'impression Python, nous verrons des résultats comme B'y Am a Linuxhint '. Ici, nous pouvons voir que la chaîne suit juste un personnage, b. En réalité, nous ne sommes pas en mesure de lire les octets, mais ici la fonction d'impression Python décode les octets aux formes lisibles par l'homme afin que nous puissions lire les chaînes.

Mais, en réalité, lorsque nous exécutons cette chaîne pour voir chaque caractère des chaînes d'octets, il imprimera comme ceci:

str1 = 'je suis un linuxhint'
imprimer (type (str1))
str2 = b'i je suis un linuxhint '
imprimer (type (str2))

Nous avons créé deux chaînes. Une chaîne est simple. Et l'autre chaîne est des octets. Lorsque nous imprimons les deux types de chaînes, nous obtenons des résultats comme indiqué ci-dessous. Les résultats ci-dessous montrent qu'une chaîne est un type d'octets et une autre est un type de chaîne.


Maintenant, nous allons imprimer chaque caractère des deux chaînes pour trouver la différence entre eux. Tout d'abord, nous imprimerons une chaîne (STR1) en utilisant une boucle pour une chaîne normale, qui est une chaîne normale.

pour a en str1:
Imprimer (a)

Sortir:

je
un
m
un
l
je
n
u
X
H
je
n
t

Maintenant, nous allons imprimer une autre chaîne (STR2) qui est un type d'octet.

pour un en str2:
Imprimer (a)

Sortir:

73
32
97
109
32
97
32
108
105
110
117
120
104
105
110
116

D'après les résultats ci-dessus, nous pouvons voir les différences entre le type d'octets et le type de chaîne. Les types d'octets ne sont pas des formes lisibles par l'homme.

Donc, maintenant nous allons voir différentes méthodes qui peuvent convertir les octets en chaînes.

Méthode 1: En utilisant la fonction map ()

Dans cette méthode, nous utiliserons la fonction map () pour convertir les octets en un format de chaîne. Le petit programme ci-dessous effacera le concept.

octet = [97, 99, 100]
S = ".join (map (chr, octet))
imprimer (s)

Sortir:

ACD

Ligne 1: Nous avons créé une liste de noms octet.

Ligne 3: Nous avons ensuite passé les caractères de l'élément de la liste en tant que paramètre et un octet comme paramètre à la fonction join (), qui rejoindra tous les caractères après la conversion. Enfin, le résultat est imprimé.

Méthode 2: Utilisation de la fonction Decode ()

Une autre méthode est une fonction decode (). La fonction de décodage fonctionne juste en face de la fonction coder ().

#Convert les octets en chaîne à l'aide de Decode ()
str = b'blogs Linuxhint '
imprimer (str)
imprimer (type (str))
# maintenant convertissant les octets en chaîne
sortie = str.décoder()
print ('\ noutput:')
Imprimer (sortie)
imprimer (type (sortie))

Sortir:

B'blogs Linuxhint '

Sortir:

Blogs Linuxhint

Ligne 3: Nous avons créé une chaîne d'octet.

Ligne 4 à 5: Ces lignes impriment simplement des informations sur la chaîne que nous avons créée à la ligne 3.

Ligne 8: Maintenant, nous appelons la fonction Decode et enregistrons le résultat sur un nouveau nom de variable.

Ligne 11 à 12: Ces lignes montrent que maintenant notre chaîne n'a plus de type d'octet et que nous pouvons confirmer le type de sortie, qui est un type de chaîne.

Méthode 3: En utilisant les codecs.Fonction Decode ()

Dans cette méthode, nous allons utiliser des codecs.Fonction Decode (). Cette fonction est utilisée pour convertir la chaîne binaire en formes normales. Alors voyons comment cette fonction fonctionne réellement.

#convert les octets en chaîne à l'aide de codecs ()
Importer des codecs
str = b'blogs Linuxhint '
imprimer (str)
imprimer (type (str))
# maintenant convertissant les octets en chaîne
sortie = codecs.décoder (str)
print ('\ noutput:')
Imprimer (sortie)
imprimer (type (sortie))

Sortir:

B'blogs Linuxhint '

Sortir:

Blogs Linuxhint

Ligne 2: Nous importons les codecs de la bibliothèque.

Ligne 3: Nous avons créé une chaîne d'octet.

Ligne 4 à 5: Ces lignes impriment simplement des informations sur la chaîne que nous avons créée à la ligne 3.

Ligne 8: Maintenant, nous appelons les Caodecs.décoder la fonction et enregistrer le résultat à un nouveau nom de variable.

Ligne 11 à 12: Ces lignes montrent que maintenant notre chaîne n'a plus de type d'octet, et nous pouvons confirmer le type de sortie, qui est un type de chaîne.

Méthode 4: En utilisant la fonction str ()

Nous pouvons également convertir les octets en chaînes normales en utilisant la fonction str (). Le petit programme pour comprendre cette méthode est donné ci-dessous.

Si __Name__ == '__MAIN__':
str1 = b'blogs linuxhint '
imprimer (str)
imprimer (type (str))
# maintenant convertissant les octets en chaîne
sortie = str (str1, 'utf-8')
print ('\ noutput:')
Imprimer (sortie)
imprimer (type (sortie))

Sortir:


Sortir:

Blogs Linuxhint

Ligne 2: Nous avons créé une chaîne d'octet.

Ligne 3 à 4: Ces lignes impriment simplement des informations sur la chaîne que nous avons créée à la ligne 3.

Ligne 6: Maintenant, nous appelons la fonction str () et enregistrons le résultat sur un nouveau nom de variable.

Ligne 7 à 9: Ces lignes montrent que maintenant notre chaîne n'a plus de type d'octet, et nous pouvons confirmer le type de sortie, qui est un type de chaîne.

Conclusion

En tant que programmeurs Python, nous travaillons quotidiennement sur différentes langues, et parfois nous obtenons une erreur en raison des octets. Donc, dans cet article, nous essayons de donner quelques méthodes à convertir les octets en chaîne afin que lorsque nous appliquons des méthodes liées à la chaîne, vous n'obtiendrez aucune erreur.

Dans ce tutoriel, nous avons donné tous les concepts que nous pouvons utiliser pour convertir les octets en chaînes. Vous pouvez choisir en fonction des exigences de votre programme.