bytes de python

Funciones y métodos de Python

Los errores de tipo ocurren todo el tiempo en Python . Este tipo de error se genera cuando intenta aplicar una función a un valor que no admite esa función. Por ejemplo, intentar iterar sobre un número genera un TypeError porque no puede iterar sobre un número.

En esta guía, vamos a hablar sobre cómo resolver el & ldquo; typeerror: a Se requiere un objeto similar a bytes, no & lsquo; str & rsquo; & rdquo; error. Analizaremos qué significa este error y por qué se plantea. También veremos una solución para ayudarlo a superar este error. ¡Comencemos!




El problema: typeerror: se requiere un objeto de tipo bytes, no & lsquo; str & rsquo;

Comencemos analizando nuestro mensaje de error:

 typeerror: se requiere un objeto de tipo bytes, no 'str' 

Este mensaje de error nos brinda dos datos vitales. TypeError nos dice que estamos aplicando una función a un valor del tipo incorrecto.

El mensaje de error nos dice que estamos tratando un valor como string en lugar de un objeto de tipo bytes. Los objetos similares a bytes son objetos que se almacenan utilizando el tipo de datos bytes. Los objetos similares a bytes no son cadenas, por lo que no pueden manipularse como una cadena.




Un escenario de práctica

Este error se genera comúnmente cuando abre un archivo como un archivo binario en lugar de como un archivo de texto .

No hay mejor manera de resolver un error que con un ejemplo de un fragmento de código con ese error. A continuación se muestra un programa que replica este error:

 with open ("recipes.txt", "rb") como archivo: recipes = file.readlines () para r en recetas: si "Chocolate" en r: print (r) 

Este fragmento de código abre el archivo & ldquo; recipes.txt & rdquo; y lee su contenido en una variable llamada & ldquo; recetas & rdquo ;.

El 81% de los participantes afirmó que se sentía más seguro acerca de su perspectivas de trabajo técnico después de asistir a un campamento de entrenamiento. Asigne a un bootcamp hoy mismo.

El graduado promedio de un bootcamp pasó menos de seis meses en la transición profesional, desde comenzar un bootcamp hasta encontrar su primer trabajo.

Las & ldquo; recetas & rdquo; La variable almacena un objeto iterable que consta de cada línea que se encuentra en & ldquo; recipes.txt & rdquo; expediente. A continuación, usamos un bucle for para iterar sobre cada receta de la lista.


En el bucle for, verificamos si cada línea contiene & ldquo; Chocolate & rdquo ;. Si una línea contiene la palabra & ldquo; Chocolate & rdquo ;, esa línea se imprime en la consola. De lo contrario, no pasa nada. < br>

Ejecutemos nuestro código y veamos qué sucede:

 Traceback ( última llamada más reciente): Archivo "main.py", línea 7, en & lt; módulo & gt; si "Chocolate" en r: TypeError: se requiere un objeto de tipo bytes, no 'str' 

¡Se ha generado un error!




La solución

El error & ldquo; se requiere un objeto de tipo bytes, no & lsquo; str & rsquo; & rdquo; nos dice que hemos & rsquo; Intenté acceder a un objeto como si fuera una cadena cuando deberíamos acceder a él como si fuera una lista de bytes.

La causa de este error es que "hemos abierto nuestro archivo" ; recipes.txt & rdquo; como bi nary:

 con open ("recipes.txt", "rb") como archivo: 

Los archivos binarios no se tratan como líneas de texto. En cambio, se tratan como una serie de bytes. Esto significa que cuando intentamos comprobar si & ldquo; Chocolate & rdquo; está en cada línea del archivo, se genera un error. Python no sabe cómo buscar una cadena en un objeto de bytes.

Podemos resolver este error abriendo nuestro archivo en modo de lectura en lugar de en modo de lectura binario:

 con open ("recipes.txt", "r") como archivo: 

El modo de lectura se utiliza para leer archivos de texto. El modo de lectura binaria se utiliza para leer archivos binarios. Hemos eliminado la & ldquo; b & rdquo; del parámetro de modo para leer nuestro archivo en modo de lectura. Intentemos ejecutar nuestro código nuevamente:

 Pastel de dulce de chocolate Galleta con chispas de chocolate Cuadrado de chocolate 

¡Nuestro código funciona! Ahora que nuestro archivo se lee usando el modo de lectura, nuestro código puede realizar un & ldquo; if & hellip; in & rdquo; comparación para comprobar si & ldquo; Chocolate & rdquo; está en cada línea de & ldquo; recipes.txt & rdquo; archivo.


< / a>


Bytes-Like Object Similar Error

El error que hemos estado discutiendo es similar al error & ldquo; TypeError: X first arg debe ser bytes o una tupla de bytes, not str & rdquo ;.

Puede encontrar este error si intenta usar un método de cadena en una lista de bytes. Para resolver este error, puede usar el mismo enfoque que usamos para resolver el último error. Asegúrese de abrir los archivos de texto en modo de lectura de texto en lugar de en modo de lectura binaria.






Conclusión

El error & ldquo; typeerror: se requiere un objeto de tipo bytes, no & lsquo; str & rsquo; & rdquo; aparece cuando trata un objeto como una cadena en lugar de como una serie de bytes. Un escenario común en el que se genera este error es cuando lee un archivo de texto como binario.

¡Ahora está listo para resolver el error del objeto tipo bytes como un profesional de Python!



bytes de python: StackOverflow Questions

Tutorials