Cómo leer archivos binarios en Python

How Read Binary Files Python



El archivo que contiene los datos binarios se denomina archivo binario. Cualquier dato binario formateado o no formateado se almacena en un archivo binario, y este archivo no es legible por humanos y es usado directamente por la computadora. Cuando es necesario leer o transferir un archivo binario de una ubicación a otra, el contenido del archivo se convierte o codifica en un formato legible por humanos. La extensión del archivo binario es .bin. El contenido del archivo binario se puede leer utilizando una función o módulo incorporado. En este tutorial se muestran diferentes formas de leer archivos binarios en Python.

Requisito previo:

Antes de comprobar los ejemplos de este tutorial, es mejor crear uno o más archivos binarios para usar en el script de ejemplo. El script de dos archivos de Python se proporciona a continuación para crear dos archivos binarios. El binary1.py creará un archivo binario llamado string.bin que contendrá datos de cadena, y binary2.py creará un archivo binario llamado number_list.bin que contendrá una lista de datos numéricos.







Binary1.py

# Abra un controlador de archivos para crear un archivo binario

manejador_archivo= abierto('cadena.bin', 'wb')

# Agrega dos líneas de texto en el archivo binario

manejador_archivo.escribir(b'Bienvenido a LinuxHint. orteAprenda a programar en Python. ')

# Cierra el manejador de archivos

manejador_archivo.cerrar()

Binary2.py

# Abra un controlador de archivos para crear un archivo binario

expediente=abierto('number_list.bin','wb')

# Declarar una lista de valores numéricos

números=[10,30,45,60,70,85,99]

# Convierte la lista en matriz

barray=bytearray(números)

# Escribe una matriz en el archivo

expediente.escribir(barray)

expediente.cerrar()

Ejemplo 1: leer el archivo binario de datos de cadena en la matriz de bytes

Existen muchas formas en Python para leer el archivo binario. Puede leer el número particular de bytes o el contenido completo del archivo binario a la vez. Cree un archivo de Python con la siguiente secuencia de comandos. los función open () ha utilizado para abrir el string.bin para leer. los función de lectura () se ha utilizado para leer 7 caracteres del archivo en cada iteración de while loop e print. A continuación, el función de lectura () se ha utilizado sin ningún argumento para leer el contenido completo del archivo binario que se imprimirá más adelante.



# Abra el archivo binario para leer

manejador_archivo= abierto('cadena.bin', 'rb')

# Leer los primeros tres bytes del archivo binario

data_byte=manejador_archivo.leer(7)

impresión('Imprime tres caracteres en cada iteración:')

# Itere el bucle para leer la parte restante del archivo

tiempodata_byte:

impresión(data_byte)

data_byte=manejador_archivo.leer(7)


# Leer el archivo completo como una cadena de un solo byte

con abierto('cadena.bin', 'rb') comofh:

contenido=fh.leer()

impresión('Imprime el contenido completo del archivo binario:')

impresión(contenido)

Producción:

La siguiente salida aparecerá después de ejecutar el script anterior.







Ejemplo 2: leer el archivo binario de datos de cadena en la matriz

Cree un archivo de Python con la siguiente secuencia de comandos para leer un archivo binario llamado number_list.bin creado previamente. Este archivo binario contiene una lista de datos numéricos. Como en el ejemplo anterior, el función open () ha utilizado abrir el archivo binario para leerlo en el script. A continuación, los primeros 5 números se leerán del archivo binario y se convertirán en una lista antes de imprimir.

# Abra el archivo binario para leer

expediente = abierto('number_list.bin', 'rb')

# Leer los primeros cinco números en una lista

número= lista(expediente.leer(5))

# Imprime la lista

impresión(número)

# Cerrar el archivo

expediente.cerrar()

Producción:

La siguiente salida aparecerá después de ejecutar el script anterior. El archivo binario contiene 7 números y los primeros cinco números se han impreso en la salida.



Ejemplo-3: leer un archivo binario usando NumPy

Las formas de crear el archivo binario usando el Matriz NumPy y lea el contenido del archivo binario usando en una lista usando el Módulo NumPy se han mostrado en esta parte del tutorial. Antes de comprobar el script que se proporciona a continuación, debe instalar el Módulo NumPy ejecutando el comando desde el terminal o instalando el Paquete NumPy en el editor de Python, donde se ejecutará el script. los función tofile () se utiliza para crear un archivo de texto o binario, y el función fromfile () se utiliza para crear una matriz leyendo un archivo de texto o binario.

Sintaxis de tofile ():

ndarray.archivar(expediente,sep='',formato='%s')

El primer argumento es obligatorio y toma el nombre del archivo, la cadena o la ruta como valor. El archivo se creará si se proporciona un nombre de archivo en este argumento. El segundo argumento es opcional y se utiliza para separar los elementos de la matriz. El tercer argumento también es opcional y se utiliza para formatear la salida del archivo de texto.

Sintaxis de fomfile ():

numpy.desde el archivo(expediente,dtype=flotador,contar=-1,sep='',compensar=0,*,igual que=Ninguno)

El primer argumento es obligatorio y toma el nombre del archivo, la cadena o la ruta como valor. El contenido del archivo se leerá si se proporciona un nombre de archivo en este argumento. los dtype define el tipo de datos de la matriz devuelta. El recuento se utiliza para contar el número de elementos. El propósito de sep es separar el texto o los elementos de la matriz. El desplazamiento se utiliza para definir la posición actual del archivo. El último argumento se usa para crear un objeto de matriz que no es un Matriz NumPy .

Cree un archivo de Python con la siguiente secuencia de comandos para crear un archivo binario usando Matriz NumPy y leer e imprimir el contenido del archivo binario.

# Importar módulo NumPy

importarnumpycomop.ej

# Declarar matriz numpy

nparray=p.ej.formación([34, 89, 30, 45, 90, 11])

# Crea un archivo binario a partir de una matriz numpy

nparray.archivar('list.bin')

# Imprimir datos del archivo binario

impresión(p.ej.desde el archivo('list.bin',dtype=p.ej.int64))

Producción:

La siguiente salida aparecerá después de ejecutar el script anterior.

Conclusión:

En este tutorial se muestran tres formas diferentes de leer el archivo binario utilizando ejemplos simples. El primer ejemplo devolvió el contenido del archivo binario como una matriz de bytes. El segundo ejemplo devolvió el contenido del archivo binario como una lista. El último ejemplo también devolvió el contenido del archivo binario como una lista.