Leitura / gravação de dados binários em Python

Então, você deseja ler bytes individuais de um arquivo em Python? Que tal escrever bytes individuais de volta? Como a maioria das coisas em Python, é muito fácil e também meio estranho.

Algumas pesquisas no Google me levaram a esta resposta no Stack Overflow . Fácil, certo? Abra um arquivo, leia uma posição de cada vez. Sem problemas.

A única coisa é que, se você imprimir tudo o que acabou de ler em sua variável (oh, Python), você tem um caractere. Especificamente, o caractere cujo valor ASCII é o valor do byte.

Portanto, se você realmente deseja fazer algo com esse valor, provavelmente deseja convertê-lo em um número inteiro (entre 0 e 255). Super fácil! Basta usar a função ord () e pronto .

Que tal gravar bytes individuais em um arquivo binário? Também é muito fácil. De repente, descobri esta discussão de fórum que implicava que você poderia colocar tudo em uma string e escrever em um arquivo. Isso mesmo – pegue uma string vazia e, para cada valor inteiro que deseja transformar em um byte (entre 0 e 255), execute chr () (o inverso de ord () ) para transformá-lo de volta em um caractere, e acrescente isso à string. Quando terminar, simplesmente escreva essa string em um arquivo e pronto!

(Para obter um exemplo de código de demonstração, consulte minha postagem no blog .)