Arquivos Binários com Python

 

github.com/ja0n

twitter.com/jaonze

t.me/jaonze

 

Arquivos Binários com Python

O que são arquivos binários?

Arquivos binários X Arquivos de texto

Diferenças

E como dados são armazenados na memória?

  • bits
  • bytes
  • octets (bytes)

E como dados são armazenados na memória?

No que isso implica?

No que isso implica?

Python <3 Low Level

Module `struct`

Interpret bytes as packed binary data

This module converts between Python values and C structs represented as Python bytes objects

Structs em C

Exemplo:

from struct import unpack

data = b'Dremond   \x19\x00\xaa\x00'
name, age, height = unpack('<10sHH', data)
struct Person
{
    char name[10];
    unsigned int age;
    unsigned int height;
}

Funções

Notação do format

struct + namedtuple

os cascas de bala

namedtuple

Método _make

Combinando os dois

from struct import unpack
from collections import namedtuple

data = b'Dremond   \x19\x00\xaa\x00'
Person = namedtuple('Person', ['name', 'age', 'height'])
person = Person._make(unpack('<10sHH', data))

Caso de uso: Targa files

*.tga

Headers

 

Caso de Uso

Arquivos .txd

TXD files are RenderWare texture archives

Estrutura do arquivo

Demo Time!!!!

Vamos ver na prática

Conclusões

  • Facilidade de uso
  • Aprendizado
  • Bibliotecas disponíveis
  • Portabilidade

Arquivos Binários e de Textura com Python

By Jaon

Arquivos Binários e de Textura com Python

  • 150