Como ler arquivos binários em Python

Como ler arquivos binários em Python

O arquivo que contém os dados binários é chamado de arquivo binário. Quaisquer dados binários formatados ou não formatados são armazenados em um arquivo binário, e esse arquivo não é legível por humanos e é usado diretamente pelo computador. Quando um arquivo binário é obrigado a ler ou transferir de um local para outro, o conteúdo do arquivo é convertido ou codificado em um formato legível por humanos. A extensão do arquivo binário é .BIN. O conteúdo do arquivo binário pode ser lido usando uma função ou módulo interno. Diferentes maneiras de ler arquivos binários em Python foram mostrados neste tutorial.

Pré-requisito:

Antes de verificar os exemplos deste tutorial, é melhor criar um ou mais arquivos binários para usar no script de exemplo. O script de dois arquivos Python deu abaixo para criar dois arquivos binários. O binário1.Py criará um arquivo binário chamado corda.BIN que conterão dados de string e o binário2.Py criará um arquivo binário chamado número_list.BIN que conterá uma lista de dados numéricos.

Binário1.py

# Abra um manipulador de arquivo para criar um arquivo binário
file_handler = aberto ("string.bin "," wb ")
# Adicione duas linhas de texto no arquivo binário
file_handler.Escreva (B "Bem -vindo ao Linuxhint.\ Nlearn Python Programming.")
# Feche o manipulador de arquivos
file_handler.fechar()

Binário2.py

# Abra um manipulador de arquivo para criar um arquivo binário
arquivo = aberto ("number_list.bin "," wb ")
# Declare uma lista de valores numéricos
Números = [10,30,45,60,70,85,99]
# Converta a lista para matar
barray = bytearray (números)
# Escreva a matriz no arquivo
arquivo.Escreva (barray)
arquivo.fechar()

Exemplo 1: Leia o arquivo binário dos dados da string na matriz de bytes

Muitas maneiras existem em Python para ler o arquivo binário. Você pode ler o número específico de bytes ou o conteúdo completo do arquivo binário de cada vez. Crie um arquivo python com o seguinte script. O função aberta () usou para abrir o corda.BIN para ler. O Função de leitura () foi usado para ler 7 caracteres do arquivo em cada iteração de loop e impressão. Em seguida, o Função de leitura () foi usado sem nenhum argumento para ler o conteúdo completo do arquivo binário que será impresso posteriormente.

# Abra o arquivo binário para leitura
file_handler = aberto ("string.bin "," rb ")
# Leia os três primeiros bytes do arquivo binário
data_byte = file_handler.Leia (7)
Imprima ("Imprima três caracteres em cada iteração:")
# Itera o loop para ler a parte restante do arquivo
enquanto data_byte:
print (data_byte)
data_byte = file_handler.Leia (7)
# Leia o arquivo inteiro como uma única string de byte
com open ('string.bin ',' rb ') como fh:
Content = fh.ler()
Imprima ("Imprima o conteúdo completo do arquivo binário:")
Imprimir (conteúdo)

Saída:

A saída a seguir aparecerá após a execução do script acima.

Exemplo 2: Leia o arquivo binário dos dados da string na matriz

Crie um arquivo python com o seguinte script para ler um arquivo binário chamado número_list.BIN criado anteriormente. Este arquivo binário contém uma lista de dados numéricos. Como o exemplo anterior, o função aberta () Usou o Open the Binary File for Reading in the Script. Em seguida, os 5 primeiros números serão lidos no arquivo binário e convertidos em uma lista antes de imprimir.

# Abra o arquivo binário para leitura
arquivo = aberto ("number_list.bin "," rb ")
# Leia os cinco primeiros números em uma lista
número = lista (arquivo.Leia (5))
# Imprima a lista
impressão (número)
# Feche o arquivo
arquivo.fechar()

Saída:

A saída a seguir aparecerá após a execução do script acima. O arquivo binário contém 7 números e os cinco primeiros números foram impressos na saída.

Exemplo 3: Leia o arquivo binário usando Numpy

As maneiras de criar o arquivo binário usando o Array Numpy e leia o conteúdo do arquivo binário usando em uma lista usando o Módulo Numpy demonstraram nesta parte do tutorial. Antes de verificar o script dado abaixo, você deve instalar o Módulo Numpy executando o comando do terminal ou instalando o Pacote Numpy no editor Python, onde o script será executado. O função tofile () é usado para criar um texto ou arquivo binário, e o Função de Flex () é usado para criar uma matriz lendo um texto ou arquivo binário.

Sintaxe de Tofile ():

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

O primeiro argumento é obrigatório e leva o nome do arquivo ou string ou caminho como um valor. O arquivo será criado se um nome de arquivo for fornecido neste argumento. O segundo argumento é opcional usado para separar os elementos da matriz. O terceiro argumento também é opcional e usado para formatar a saída do arquivo de texto.

Sintaxe de Fomfile ():

Numpy.FromFile (arquivo, dtype = float, count =- 1, sep = ", deslocamento = 0, *, como = nenhum)

O primeiro argumento é obrigatório e leva o nome do arquivo ou string ou caminho como um valor. O conteúdo do arquivo será lido se um nome de arquivo será fornecido neste argumento. O dtype define o tipo de dados da matriz retornada. A contagem é usada para contar o número de itens. O objetivo do set é separar os itens de texto ou matriz. O deslocamento é usado para definir a posição atual do arquivo. O último argumento é usado para criar um objeto de matriz que não Array Numpy.

Crie um arquivo python com o seguinte script para criar um arquivo binário usando Array Numpy e leia e imprima o conteúdo do arquivo binário.

# Importar módulo Numpy
importar numpy como np
# Declare Numpy Array
nparray = np.Array ([34, 89, 30, 45, 90, 11])
# Crie um arquivo binário a partir de Numpy Array
nparray.Tofile ("Lista.bin ")
# Imprimir dados do arquivo binário
Imprimir (NP.FromFile ("Lista.bin ", dtype = np.Int64))

Saída:

A saída a seguir aparecerá após a execução do script acima.

Conclusão:

Três maneiras diferentes de ler o arquivo binário foram mostradas neste tutorial usando exemplos simples. O primeiro exemplo retornou o conteúdo do arquivo binário como uma matriz de bytes. O segundo exemplo retornou o conteúdo do arquivo binário como uma lista. O último exemplo também retornou o conteúdo do arquivo binário como uma lista.