Documente Academic
Documente Profesional
Documente Cultură
● Python 2 X Python 3
○ No python2 será criado um objeto ‘file’ (isso é passado, vamos migrar?)
○ No python3 um objeto io
Função open(mode=?) - Modos
Modo Significado
‘w’ Abre o arquivo para escrita, “inicia um novo arquivo, caso já exista”
open(<file>, ‘rb’)
Leitura de
um arquivo
open(<file>, ‘w’) binário
open(<file>, ‘a’)
Função open(mode=?) - Modos
open(<file>, ‘rb’)
Escrita de
um arquivo
open(<file>, ‘w’) de texto
open(<file>, ‘a’)
Função open(mode=?) - Modos
open(<file>, ‘rb’)
“continuar”
escrevendo
open(<file>, ‘w’) no arquivo
open(<file>, ‘a’)
CODE !! [parte 1]
Explicando parâmetros - Buffering
open(file,
mode='r', buffering: tamanho que será ocupado
buffering=-1, em memória durante a leitura. Neste caso o
tamanho do blocos (chunks) que serão
encoding=None, “armazenados”.
errors=None, Default: -1 (nesse caso o python vai
newline=None, escolher o tamanho dos blocos por você)
closefd=True, Você pode optar por 0 (sem buffer) em
opener=None) alguns casos (só funciona com leituras
binárias)
Explicando parâmetros - Buffering
open(file,
mode='r', Como o python escolhe por
buffering=-1, mim?
encoding=None, O python vai chamar uma função
errors=None, chamada fstat e passar seu
newline=None, arquivo como parâmetro. Caso
closefd=True, não consiga, vai usar o padrão
opener=None) de IO.
Explicando parâmetros - Buffering
Explicando parâmetros - Encoding
open(file,
mode='r', Enconding: Encode do arquivo que vai
buffering=-1, ser lido. O formatos suportados são esses
encoding=None,
errors=None, Default: None, caso você não diga o
newline=None, encode do seu arquivo, o python vai
descobrir ele usando
closefd=True, `locale.getpreferredencoding()`
opener=None)
Explicando parâmetros - Encoding
Explicando parâmetros - Errors
open(file, Errors: Uma string opcional que
mode='r', especifica como os erros de encoding deve
errors=None,
erro for encontrado, retornará ValueError
porém existem uma gama de
newline=None, manipuladores disponíveis. Você também
closefd=True,
pode criar os seu próprio manipulador, mas
terá que registrar o mesmo em
opener=None) `codecs.register_error()`
Explicando parâmetros - Errors
Modo Significado
‘strict’ (Rigoroso) Abrirá um Raise com ValueError caso não consiga parsear
‘ignore’ Ignora os erros de codificação, caso encontre, deixa de lado (perde dados)
‘surrogateescape’ (escape de substituição) Substitui os erros por escape os troca pelos bytes
... ...
Explicando parâmetros - Newline
open(file,
mode='r', Newline: Controla como o `universal
buffering=-1, newlines` (PEP278) vai funcionar
newline=None,
todas as quebras (\n, \r, \r\n) serão
traduzidas para `\n`, o mesmo vale para `’’`
closefd=True, que lerá qualquer quebra, mas retornará o
opener=None)
valor original.
Explicando parâmetros - Newline
open(file,
mode='r', Caso você escolha o interpretador errado, o
buffering=-1,
texto será parseado, porém não haverá
quebra de linha
encoding=None,
errors=None,
newline=None,
closefd=True,
opener=None)
CODE !! [parte 2]
Explicando parâmetros - Closefd
open(file,
mode='r', Closefd: Determina se você vai
buffering=-1, trabalhar com a descrição de um arquivo
encoding=None,
(arquivos em memória por exemplo)