Python

Convertir Bytearray en octets en Python

Convertir Bytearray en octets en Python
De nombreux types d'objets de données différents sont pris en charge par Python. Deux d'entre eux sont les objets tableau d'octets et octets. le tableau d'octets() la fonction renvoie un objet tableau d'octets. Cet objet est modifiable et prend en charge le nombre entier de 0 à 255. le octets() la fonction renvoie des objets octets, n'est pas modifiable et prend en charge les entiers de 0 à 255. Cet article décrira ces fonctions et expliquera comment tableau d'octets les objets peuvent être convertis en octets objets.

Syntaxe de la méthode bytearray()

bytearray ([ data_source [, encodage [, erreurs]]])

Les trois arguments de cette méthode sont optionnels. Le premier argument sert à initialiser la liste des octets. Si le premier argument est la chaîne, alors le deuxième argument est utilisé pour l'encodage. Enfin, le troisième argument est utilisé pour afficher l'erreur si l'encodage échoue.

Syntaxe des octets() Méthode

octets ([source_données [, encodage [, erreurs]]])

Tous les arguments du octets() fonction sont facultatives, comme la tableau d'octets() méthode. Les fonctions de ces arguments sont également les mêmes que tableau d'octets() méthode, mentionnée ci-dessus.

La méthode de conversion tableau d'octets à octets en Python est montré ci-dessous, en utilisant quelques exemples simples pour une meilleure compréhension de ce processus.

Exemple 1 : convertir les données de liste d'un tableau d'octets en octets

Lorsque la fonction bytearray() ne contient qu'un seul argument, la valeur de l'argument sera une donnée ou une variable du dictionnaire. L'exemple suivant montre comment un objet dictionnaire peut être converti en un objet bytearray et comment un objet bytearray peut ensuite être converti en un objet byte. Ensuite, la première boucle for permet d'afficher les valeurs de la table de traduction des codes ASCII et la seconde boucle for permet d'afficher les caractères des codes ASCII correspondants.

#!/usr/bin/env python3
 
# Définir la liste
données de liste = [72, 69, 76, 76, 79]
# Imprimer le contenu de la liste
print("\nLes valeurs du dictionnaire sont :\n", listdata)
 
# Initialiser l'objet bytearray avec la liste
byteArrayObject = bytearray(listdata)
# Imprimer la valeur de l'objet bytearray
print("\nLa sortie de la méthode bytearray() :\n", byteArrayObject)
 
# Convertir l'objet bytearray en objet bytes
byteObject = bytes(byteArrayObject)
# Imprimer la valeur de l'objet octets
print("\nLa sortie de la méthode bytes() :\n", byteObject)
 
print("\nLes valeurs ASCII des octets")
# Itérer l'objet bytes en utilisant la boucle
pour val dans byteObject :
print(val,", end=")
 
print("\nLes valeurs de chaîne d'octets")
# Itérer l'objet bytes en utilisant la boucle
pour val dans byteObject :
print(chr(val),", end=")

Production

La sortie suivante apparaîtra après l'exécution du script. Ici, 72, 69, 76 et 79 sont le code ASCII de « H », E », L » et « O », respectivement.

Exemple 2 : convertir les données de chaîne de bytearray en octets

L'exemple suivant montre la conversion d'objets bytearray en objets byte dans des données de chaîne. Deux arguments sont utilisés dans la méthode bytearray() de ce script. Le premier argument contient la valeur de la chaîne, tandis que le deuxième argument contient la chaîne d'encodage. Ici, l'encodage 'utf-8' est utilisé pour convertir en un objet bytearray. le décoder() méthode est utilisée dans le script pour convertir les objets octets en données de chaîne. Le même encodage est utilisé au moment de la conversion.

#!/usr/bin/env python3
 
# Prend une valeur de chaîne
text = input("Entrez n'importe quel texte :\n")
 
# Initialiser l'objet bytearray avec la chaîne et l'encodage
byteArrObj = bytearray(texte, 'utf-8')
print("\nLa sortie de la méthode bytesarray() :\n", byteArrObj)
 
# Convertir le tableau d'octets en octets
octetObj = octets(octetArrObj)
print("\nLa sortie de la méthode bytes() :\n", byteObj)
 
# Convertir la valeur des octets en chaîne en utilisant emcoding
print("\nLes valeurs de chaîne d'octets")
print(byteObj.décoder("utf-8"))

Production

La sortie suivante apparaîtra après l'exécution du script.

Exemple 3 : convertir des données entières d'un tableau d'octets en octets

Les exemples précédents montrent la conversion de bytearray et d'octets basée sur des données de dictionnaire et de chaîne. Ce troisième exemple montre la conversion de bytearray en octets en fonction des données d'entrée. Ici, la valeur d'entrée est convertie en une valeur entière et passée en argument via la fonction bytearray(), et l'objet bytearray est ensuite converti en un objet bytes. Les valeurs nulles basées sur le nombre entier sont affichées en tant que sortie de l'objet bytearray et bytes. Le nombre total d'octets est compté via la méthode len() à la fin du script, et sera égal à la valeur entière passée en argument à la méthode bytearray().

#!/usr/bin/env python3
 
essayer:
# Prendre n'importe quelle valeur numérique
text = int(input("Entrez n'importe quel nombre :  "))
 
# Initialiser l'objet bytearray avec le numéro
byteArrObj = bytearray(texte)
print("\nLa sortie de la méthode bytesarray() :\n", byteArrObj)
 
# Convertir l'objet bytearray en objet bytes
octetObj = octets(octetArrObj)
print("\nLa sortie de la méthode bytes() :\n", byteObj)
 
# Imprimer la taille de l'objet bytes
print("\nLa longueur de l'objet bytes : ",len(byteObj))
sauf ValueError :
print("Entrez n'importe quelle valeur numérique")

Production

Après avoir exécuté le script, 6 est pris comme entrée dans la sortie suivante. Les six valeurs nulles sont affichées comme sortie de bytearray et bytes. Lorsque les valeurs nulles sont comptées, il affiche 6.

Exemple 4 : créer un tableau d'octets en utilisant append() et convertir en octets

L'exemple suivant montre comment les objets bytearray peuvent être créés via la méthode append() et convertis en octets. La variable arrVal est déclarée ici en tant qu'objet bytearray. Ensuite, la méthode append() est appelée six fois pour ajouter six éléments dans le tableau. Les codes ASCII des caractères « P », « y », « h », « o » et « n » sont respectivement 80, 121, 116, 104, 111 et 1120. Ceux-ci sont ajoutés dans l'objet bytearray. Cet objet tableau est converti en objet octets plus tard.

#!/usr/bin/env python3
# Créer un tableau d'octets et ajouter un élément à l'aide de la méthode append ()
arrVal = bytearray()
arrVal.ajouter(80)
arrVal.ajouter(121)
arrVal.ajouter(116)
arrVal.ajouter (104)
arrVal.ajouter (111)
arrVal.ajouter(110)
 
# Affiche les valeurs bytearray()
print("\nLa sortie de la méthode bytearray() :\n", arrVal)
 
# Convertir l'objet bytearray en un objet bytes
octetObjet = octets(arrVal)
 
# Imprimer la valeur de l'objet octets
print("\nLa sortie de la méthode bytes() :\n", byteObject)

Production

La sortie suivante apparaîtra après l'exécution du script.

Conclusion

Diverses méthodes sont présentées dans cet article pour convertir bytearray en octets après la création d'objets bytearray. Après avoir lu cet article, j'espère que vous comprenez le concept de bytearray et d'octets, que vous savez comment convertir un bytearray en octets et que vous pourrez afficher la sortie des octets sous forme de chaîne et de caractères.

Outils utiles pour les joueurs Linux
Si vous aimez jouer à des jeux sur Linux, il est probable que vous ayez utilisé des applications et des utilitaires comme Wine, Lutris et OBS Studio p...
Jeux HD remasterisés pour Linux qui n'ont jamais eu de version Linux plus tôt
De nombreux développeurs et éditeurs de jeux proposent une remasterisation HD d'anciens jeux pour prolonger la durée de vie de la franchise, veuillez ...
Comment utiliser AutoKey pour automatiser les jeux Linux
AutoKey est un utilitaire d'automatisation de bureau pour Linux et X11, programmé en Python 3, GTK et Qt. En utilisant ses fonctionnalités de script e...