Siddharth Kshirsagar

Follow

Ago 1, 2020 – 2 min ler

/div>

div>

Foto de Robert Thiemann em Unsplash
  1. StringIO e BytesIO são métodos que manipulam dados de cordas e bytes na memória.
  2. StringIO é usado para dados de string e BytesIO é usado para dados binários.
  3. Estas classes criam ficheiros como objectos que funcionam com dados de string.
  4. As classes StringIO e BytesIO são mais úteis em cenários onde é necessário imitar um ficheiro normal.

Neste caso os dados não serão guardados na memória (RAM) depois de serem escritos no ficheiro

Neste caso, em vez de escrever o conteúdo num ficheiro, são escritos num buffer de memória.(um pedaço de ram)

escreveressencialmente usando a classe BytesIO é equivalente a

space = b""
space += b"Hello world"
space += b"Hello world"
space += b"Hello world"
space += b"Hello world"
space += b"Hello world"

Então porque definimos io.BytesIO() e porque não usar a concatenação de bytes ?

Ans: Optimização e Desempenho

Existe outra forma através da qual possamos ler dados para um buffer de memória mutável ?

Sim podemos usar o método readinto() de ficheiro de um objecto.

    1. O readinto() método de ficheiros pode ser usado para preencher qualquer matriz pré-alocada com dados. Incluindo matrizes criadas através do módulo numérico.
    2. Unlike normal read() método o readinto() método preenche o conteúdo de um buffer existente em vez de atribuir novos objectos e devolvê-los.
    3. Assim, podemos utilizá-lo para evitar fazer atribuições de memória extra.

    Exemplos:

    Você quer ler dados binários directamente para um buffer mutável sem qualquer cópia intermédia para manipular os dados binários

Deixe uma resposta

O seu endereço de email não será publicado. Campos obrigatórios marcados com *