Escribir bytes en un archivo en Python

Manav Narula 11 marzo 2021
  1. Escribir bytes en un archivo en Python
  2. Escribir un array de bytes en un archivo en Python
  3. Escribir objetos BytesIO en un fichero binario
Escribir bytes en un archivo en Python

En este tutorial, presentaremos cómo escribir bytes en un archivo binario en Python.

Los archivos binarios contienen cadenas de tipo bytes. Cuando leemos un archivo binario, se devuelve un objeto de tipo bytes. En Python, los bytes se representan con dígitos hexadecimales. Están prefijados con el carácter b, que indica que son bytes.

Escribir bytes en un archivo en Python

Para escribir bytes en un archivo, primero crearemos un objeto archivo usando la función open() y proporcionaremos la ruta del archivo. El archivo debe abrirse en el modo wb, que especifica el modo de escritura en archivos binarios. El siguiente código muestra cómo podemos escribir bytes en un archivo.

data = b"\xC3\xA9"

with open("test.bin", "wb") as f:
    f.write(data)

También podemos utilizar el modo append - a cuando necesitamos añadir más datos al final del archivo existente. Por ejemplo:

data = b"\xC3\xA9"

with open("test.bin", "ab") as f:
    f.write(data)

Para escribir bytes en una posición específica, podemos utilizar la función seek() que especifica la posición del puntero del archivo para leer y escribir datos. Por ejemplo:

data = b"\xC3\xA9"

with open("test.bin", "wb") as f:
    f.seek(2)
    f.write(data)

Escribir un array de bytes en un archivo en Python

Podemos crear un array de bytes utilizando la función bytearray(). Ésta devuelve un objeto mutable bytearray. También podemos convertirlo en bytes para hacerlo inmutable. En el siguiente ejemplo, escribimos un array de bytes en un fichero.

arr = bytearray([1, 2, 5])
b_arr = bytes(arr)

with open("test.bin", "wb") as f:
    f.write(b_arr)

Escribir objetos BytesIO en un fichero binario

El módulo io nos permite extender las funciones de entrada-salida y las clases relacionadas con el manejo de archivos. Se utiliza para almacenar bytes y datos en trozos del buffer de memoria y también nos permite trabajar con los datos Unicode. El método getbuffer() de la clase BytesIO se utiliza aquí para obtener una vista de lectura-escritura del objeto. Ver el siguiente código.

from io import BytesIO

bytesio_o = BytesIO(b"\xC3\xA9")

with open("test.bin", "wb") as f:
    f.write(bytesio_o.getbuffer())
Manav Narula avatar Manav Narula avatar

Manav is a IT Professional who has a lot of experience as a core developer in many live projects. He is an avid learner who enjoys learning new things and sharing his findings whenever possible.

LinkedIn

Artículo relacionado - Python File