Método de bytes() de Python

La función Python byte() convierte un objeto en un objeto inmutable representado por bytes de tamaño y datos dados.

Sintaxis: bytes (src, enc, err)

Parámetros: 

  • src: el objeto de origen que debe convertirse
  • enc: la codificación requerida en caso de que el objeto sea una string
  • err: forma de manejar el error en caso de que falle la conversión de string.

Devuelve:  objeto inmutable de bytes que consta de caracteres Unicode de 0 a 256 según el tipo de src. 

  • entero: Devuelve una array de tamaño inicializado a nulo
  • iterable: devuelve una array de tamaño iterable con elementos iguales a los elementos iterables (0-256)
  • string : Devuelve la string codificada acc. para enc y si la codificación falla, realiza la acción de acuerdo con el error especificado.
  • sin argumentos: Devuelve una array de tamaño 0.

Ejemplo de bytes() de Python

Ejemplo 1: Convertir string a bytes

 En este ejemplo, vamos a convertir strings a bytes usando la función bytes() de Python, para esto tomamos una variable con string y la pasamos a la función bytes() con parámetros UTF-8. UTF-8 es capaz de codificar los 1 112 064 puntos de código de caracteres válidos en Unicode utilizando de una a cuatro unidades de código de un byte

Python3

# python code demonstrating
# int to bytes
str = "Welcome to Geeksforgeeks"
 
arr = bytes(str, 'utf-8')
 
print(arr)

Producción:

b'Welcome to Geeksforgeeks'

Ejemplo 2: Array de bytes de un entero

En este ejemplo, vamos a ver cómo obtener un arreglo de bytes de un entero usando la función bytes() de Python, para esto pasaremos el entero a la función bytes().

Python3

# python code to demonstrate
# int to bytes
 
number = 12
result = bytes(number)
 
print(result)

Producción:

b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'

Ejemplo 3: parámetros nulos con bytes()

Cuando no pasamos nada en la función bytes(), crea una array de tamaño 0.

Python3

print(bytes())

Producción:

b''

Ejemplo 4: demostración de byte() en enteros, ninguno e iterables

Python3

# Python 3 code to demonstrate the
# working of bytes() on int, iterables, none
 
# initializing integer and iterables
a = 4
lis1 = [1, 2, 3, 4, 5]
 
# No argument case
print ("Byte conversion with no arguments : " + str(bytes()))
 
# conversion to bytes
print ("The integer conversion results in : "  + str(bytes(a)))
print ("The iterable conversion results in : "  + str(bytes(lis1)))

Producción: 
 

Byte conversion with no arguments : b''
The integer conversion results in : b'\x00\x00\x00\x00'
The iterable conversion results in : b'\x01\x02\x03\x04\x05'

Comportamiento de bytes con strings 

Los bytes aceptan una string como argumento y requieren un esquema de codificación para realizarla. El aspecto más importante de esto es el manejo de errores en caso de falla de codificación, algunos de los esquemas de manejo de errores definidos son: 

Controladores de errores de string: 

  • strict : genera el UnicodeDecodeError predeterminado en caso de falla de codificación.
  • ignore : ignora el carácter no codificable y codifica la string restante.
  • replace : reemplaza el carácter no codificable con un ‘?’.

Ejemplo : demostración de bytes() usando una string

Python3

# Python 3 code to demonstrate the
# working of bytes() on string
 
# initializing string
str1 = 'GeeksfÖrGeeks'
 
# Giving ascii encoding and ignore error
print("Byte conversion with ignore error : " +
      str(bytes(str1, 'ascii', errors='ignore')))
 
# Giving ascii encoding and replace error
print("Byte conversion with replace error : " +
      str(bytes(str1, 'ascii', errors='replace')))
 
# Giving ascii encoding and strict error
# throws exception
print("Byte conversion with strict error : " +
      str(bytes(str1, 'ascii', errors='strict')))

Producción: 

Byte conversion with ignore error : b'GeeksfrGeeks'
Byte conversion with replace error : b'Geeksf?rGeeks'

Excepción : 

UnicodeEncodeError: el códec ‘ascii’ no puede codificar el carácter ‘\xd6’ en la posición 6: el ordinal no está en el rango (128)

Publicación traducida automáticamente

Artículo escrito por manjeet_04 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *