Grave bytes em um arquivo em Python

Manav Narula 30 janeiro 2023
  1. Grave bytes em um arquivo em Python
  2. Escreva un array de bytes para um arquivo em Python
  3. Grave objetos BytesIO em um arquivo binário
Grave bytes em um arquivo em Python

Neste tutorial, apresentaremos como gravar bytes em um arquivo binário em Python.

Os arquivos binários contêm cadeias de caracteres do tipo bytes. Quando lemos um arquivo binário, um objeto do tipo bytes é retornado. Em Python, os bytes são representados por dígitos hexadecimais. Eles são prefixados com o caractere b, que indica que são bytes.

Grave bytes em um arquivo em Python

Para gravar bytes em um arquivo, primeiro criaremos um objeto de arquivo usando a função open() e forneceremos o caminho do arquivo. O arquivo deve ser aberto no modo wb, que especifica o modo de gravação em arquivos binários. O código a seguir mostra como podemos gravar bytes em um arquivo.

data = b"\xC3\xA9"

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

Também podemos usar o modo append - a quando precisamos adicionar mais dados no final do arquivo existente. Por exemplo:

data = b"\xC3\xA9"

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

Para escrever bytes em uma posição específica, podemos usar a função seek() que especifica a posição do ponteiro do arquivo para ler e escrever dados. Por exemplo:

data = b"\xC3\xA9"

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

Escreva un array de bytes para um arquivo em Python

Podemos criar un array de bytes usando a função bytearray(). Ele retorna um objeto mutável bytearray. Também podemos convertê-lo em bytes para torná-lo imutável. No exemplo a seguir, gravamos un array de bytes em um arquivo.

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

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

Grave objetos BytesIO em um arquivo binário

O módulo io nos permite estender as funções de entrada e saída e classes relacionadas ao manuseio de arquivos. Ele é usado para armazenar bytes e dados em pedaços do buffer de memória e também nos permite trabalhar com os dados Unicode. O método getbuffer() da classe BytesIO é usado aqui para obter uma visualização de leitura e gravação do objeto. Veja o seguinte 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

Artigo relacionado - Python File