Escribir bytes en un archivo en Python
- Escribir bytes en un archivo en Python
- Escribir un array de bytes en un archivo en Python
-
Escribir objetos
BytesIO
en un fichero binario
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 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