octets Python

Les erreurs de type se produisent tout le temps en Python. Ce type d’erreur est généré lorsque vous essayez d’appliquer une fonction à une valeur qui ne prend pas en charge cette fonction. Par exemple, essayer d’itérer sur un nombre génère une TypeError car vous ne pouvez pas itérer sur un nombre.

Dans ce guide, nous allons parler de la façon de résoudre la "typeerror : a Un objet de type octets est requis, pas ‚Äòstr‚Äô‚" Erreur. Nous allons expliquer ce que signifie cette erreur et pourquoi elle est signalée. Nous allons également passer en revue une solution pour vous aider à surmonter cette erreur. Commençons !

Le problème : erreur de type : un objet de type octet est requis, pas ‚Äòstr‚Äô

Commençons par analyser notre message d’erreur :

Ce message d’erreur nous donne deux informations essentielles. TypeError nous indique que nous appliquons une fonction à une valeur du mauvais type.

Le message d’erreur nous indique que nous traitons une valeur comme un string plutôt qu’un objet de type octets. Les objets de type octets sont des objets stockés à l’aide du type de données octets. Les objets de type octet ne sont pas des chaaînes et ne peuvent donc pas être manipulés comme une chaaîne.

Un scénario pratique

Cette erreur se produit généralement lorsque vous ouvrez un fichier en tant que fichier binaire au lieu de sous forme de fichier texte.

Il n’y a pas de meilleur moyen de résoudre une erreur que de parcourir un exemple de un extrait de code avec cette erreur. Voici un programme qui reproduit cette erreur :

Cet extrait de code ouvre le fichier "recipes.txt‚" et lit son contenu dans une variable appelée "recettes‚".

81 % des participants ont déclaré qu’ils se sentaient plus confiants dans leur perspectives d’emploi en technologie après avoir assisté à un bootcamp. Soyez jumelé à un bootcamp aujourd’hui.

Le diplômé moyen d’un bootcamp a passé moins de six mois en transition de carrière, du démarrage d’un bootcamp à la recherche de son premier emploi.

Les "recettes‚" La variable stocke un objet itérable composé de chaque ligne qui se trouve dans le fichier "recipes.txt‚" déposer. Ensuite, nous utilisons une boucle for pour parcourir chaque recette de la liste.

Dans la boucle for, nous vérifions si chaque ligne contient "Chocolate". Si une ligne contient le mot "Chocolate", cette ligne est imprimée sur la console. Sinon, rien ne se passe.< br>

Exécutons notre code et voyons ce qui se passe :

Une erreur s’est produite !

La solution

L’erreur "un objet de type octet est requis, et non ‚Äòstr‚Äô" nous dit que nous‚Äôve essayé d’accéder à un objet comme s’il s’agissait d’une chaaîne alors que nous devrions y accéder comme s’il s’agissait d’une liste d’octets.

La cause de cette erreur est que nous avons ouvert notre fichier &ldquo ;recipes.txt‚" en tant que bi nary :

Les fichiers binaires ne sont pas traités comme des lignes de texte. Au lieu de cela, ils sont traités comme une série d’octets. Cela signifie que lorsque nous essayons de vérifier si "Chocolat" est dans chaque ligne du fichier, une erreur est générée. Python ne sait pas comment rechercher une chaaîne dans un objet bytes.

Nous pouvons résoudre cette erreur en ouvrant notre fichier en mode lecture au lieu du mode lecture binaire :

< Le mode p>Lecture est utilisé pour lire des fichiers texte. Le mode de lecture binaire est utilisé pour lire des fichiers binaires. Nous avons supprimé le "b" du paramètre mode pour lire notre fichier en mode lecture. Essayons à nouveau d’exécuter notre code :

Notre code fonctionne ! Maintenant que notre fichier est lu en mode lecture, notre code peut effectuer un "if‚Ķin‚" comparaison pour vérifier si "chocolat" se trouve dans chaque ligne du fichier "recipes.txt‚" fichier.

Erreur similaire à un objet de type octet

L’erreur dont nous avons discuté est similaire à l’erreur "TypeError : X premier argument doit être des octets ou un tuple d’octets, not str‚".

Vous pouvez rencontrer cette erreur si vous essayez d’utiliser une méthode de chaaîne sur une liste d’octets. Pour résoudre cette erreur, vous pouvez utiliser la même approche que nous avons utilisée pour résoudre le dernière erreur. Assurez-vous d’ouvrir tous les fichiers texte en mode de lecture de texte au lieu du mode de lecture binaire.



Conclusion

L’erreur "typeerror : un objet de type octets est requis, et non ‚Äòstr‚Äô" est déclenché lorsque vous traitez un objet comme une chaaîne au lieu d’une série d’octets. Un scénario courant dans lequel cette erreur se produit est lorsque vous lisez un fichier texte en tant que binaire.

Maintenant, vous êtes prêt à résoudre l’erreur d’objet de type octet comme un pro Python !