Come leggere i file binari in Python

Come leggere i file binari in Python

Il file che contiene i dati binari è chiamato file binario. Eventuali dati binari formattati o non formati sono archiviati in un file binario e questo file non è leggibile dall'uomo e viene utilizzato direttamente dal computer. Quando è richiesto un file binario per leggere o trasferire da una posizione a un'altra posizione, il contenuto del file viene convertito o codificato in un formato leggibile dall'uomo. L'estensione del file binario è .bidone. Il contenuto del file binario può essere letto utilizzando una funzione o un modulo integrato. In questo tutorial sono stati mostrati diversi modi di leggere file binari in Python.

Prerequisito:

Prima di controllare gli esempi di questo tutorial, è meglio creare uno o più file binari da utilizzare nello script di esempio. Lo script di due file Python ha dato di seguito per creare due file binari. Il binario1.Py creerà un file binario denominato corda.bidone che conterrà dati stringa e il binario2.Py creerà un file binario denominato Number_list.bidone che conterrà un elenco di dati numerici.

Binario1.Py

# Apri un gestore di file per creare un file binario
File_Handler = Open ("String.Bin "," WB ")
# Aggiungi due righe di testo nel file binario
file_handler.Scrivi (B "Benvenuti a Linuxhint.\ nlearn Python Programming.")
# Chiudi il gestore dei file
file_handler.vicino()

Binario2.Py

# Apri un gestore di file per creare un file binario
File = Open ("Number_List.Bin "," WB ")
# Dichiara un elenco di valori numerici
Numeri = [10,30,45,60,70,85,99]
# Converti l'elenco in array
barray = byteArray (numeri)
# Scrivi array nel file
file.Scrivi (Barray)
file.vicino()

Esempio-1: leggi il file binario dei dati di stringa nell'array di byte

Esistono molti modi in Python per leggere il file binario. Puoi leggere il numero particolare di byte o il contenuto completo del file binario alla volta. Crea un file Python con il seguente script. IL funzione aperta () ha usato per aprire il corda.bidone per leggere. IL Leggi () funzione è stato usato per leggere 7 caratteri dal file in ogni iterazione di While Loop and Stamp. Successivamente, il Leggi () funzione è stato usato senza alcun argomento per leggere l'intero contenuto del file binario che verrà stampato in seguito.

# Apri il file binario per la lettura
File_Handler = Open ("String.bin "," RB ")
# Leggi i primi tre byte dal file binario
data_byte = file_handler.Leggi (7)
Stampa ("Stampa tre caratteri in ogni iterazione:")
# Itera il ciclo per leggere la parte rimanente del file
Mentre Data_Byte:
Stampa (data_byte)
data_byte = file_handler.Leggi (7)
# Leggi l'intero file come una singola stringa di byte
con Open ('String.bin ',' rb ') come fh:
content = fh.Leggere()
Stampa ("Stampa il contenuto completo del file binario:")
Stampa (contenuto)

Produzione:

Verrà visualizzato il seguente output dopo aver eseguito lo script sopra.

Esempio-2: leggi il file binario dei dati stringa nell'array

Crea un file Python con il seguente script per leggere un file binario denominato Number_list.bidone creato in precedenza. Questo file binario contiene un elenco di dati numerici. Come l'esempio precedente, il funzione aperta () ha usato Apri il file binario per la lettura nello script. Successivamente, i primi 5 numeri verranno letti dal file binario e convertiti in un elenco prima di stampare.

# Apri il file binario per la lettura
File = Open ("Number_List.bin "," RB ")
# Leggi i primi cinque numeri in un elenco
numero = elenco (file.Leggi (5))
# Stampa l'elenco
Stampa (numero)
# Chiudi il file
file.vicino()

Produzione:

Verrà visualizzato il seguente output dopo aver eseguito lo script sopra. Il file binario contiene 7 numeri e i primi cinque numeri hanno stampato nell'output.

Esempio-3: leggi il file binario usando Numpy

I modi per creare il file binario usando il Array numpy e leggi il contenuto del file binario utilizzando in un elenco utilizzando il Modulo numpy hanno mostrato in questa parte del tutorial. Prima di controllare lo script indicato di seguito, è necessario installare il Modulo numpy eseguendo il comando dal terminale o installando il Pacchetto numpy Nell'editor Python, dove verrà eseguito lo script. IL funzione tofile () viene utilizzato per creare un file di testo o binario e il Funzione FromFile () viene utilizzato per creare un array leggendo un file di testo o binario.

Sintassi di tofile ():

ndarray.tofile (file, sep = ", format = '%s')

Il primo argomento è obbligatorio e prende il nome file o la stringa o il percorso come valore. Il file verrà creato se in questo argomento viene fornito un nome file. Il secondo argomento è facoltativo che viene utilizzato per separare gli elementi dell'array. Il terzo argomento è anche facoltativo e utilizzato per la formattazione dell'output del file di testo.

Sintassi di fomfile ():

numpy.FromFile (File, dType = float, count =- 1, sep = ", offset = 0, *, like = Nessuno)

Il primo argomento è obbligatorio e prende il nome file o la stringa o il percorso come valore. Il contenuto del file verrà letto se in questo argomento verrà fornito un nome file. IL dtype Definisce il tipo di dati dell'array restituito. Il conteggio viene utilizzato per contare il numero di elementi. Lo scopo del set è separare gli elementi di testo o array. L'offset viene utilizzato per definire la posizione corrente del file. L'ultimo argomento viene utilizzato per creare un oggetto array che non a Array numpy.

Crea un file Python con il seguente script per creare un file binario utilizzando Array numpy e leggere e stampare il contenuto del file binario.

# Importa modulo numpy
Importa Numpy come NP
# Dichiara Numpy Array
nPArray = np.Array ([34, 89, 30, 45, 90, 11])
# Crea file binari da Numpy Array
nparray.Tofile ("Elenco.bidone")
# Stampa dati dal file binario
Stampa (NP.FromFile ("Elenco.bin ", dtype = np.int64))

Produzione:

Verrà visualizzato il seguente output dopo aver eseguito lo script sopra.

Conclusione:

In questo tutorial sono stati mostrati tre diversi modi per leggere il file binario. Il primo esempio ha restituito il contenuto del file binario come array di byte. Il secondo esempio ha restituito il contenuto del file binario come elenco. L'ultimo esempio ha anche restituito il contenuto del file binario come elenco.