Thanks to visit codestin.com
Credit goes to pt.scribd.com

0% acharam este documento útil (0 voto)
0 visualizações19 páginas

AulaPython09 Arquivos

O documento aborda a manipulação de arquivos em Python, explicando a importância de arquivos para armazenamento de dados e os tipos de arquivos (texto e binário). Ele detalha como abrir, fechar, ler e escrever em arquivos, além de tratar erros e exceções com instruções try-except e try-finally. Também inclui referências a vídeo aulas complementares sobre o tema.

Enviado por

João Vitor
Direitos autorais
© © All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PDF, TXT ou leia on-line no Scribd
0% acharam este documento útil (0 voto)
0 visualizações19 páginas

AulaPython09 Arquivos

O documento aborda a manipulação de arquivos em Python, explicando a importância de arquivos para armazenamento de dados e os tipos de arquivos (texto e binário). Ele detalha como abrir, fechar, ler e escrever em arquivos, além de tratar erros e exceções com instruções try-except e try-finally. Também inclui referências a vídeo aulas complementares sobre o tema.

Enviado por

João Vitor
Direitos autorais
© © All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PDF, TXT ou leia on-line no Scribd
Você está na página 1/ 19

30/05/2022

Prof. André Backes

1
30/05/2022

Arquivos
 Por que usar arquivos?
 Permitem armazenar grande quantidade de informação;
 Persistência dos dados (disco);
 Acesso aos dados poder ser não sequencial;
 Acesso concorrente aos dados (mais de um programa
pode usar os dados ao mesmo tempo).

Tipos de Arquivos
 Basicamente, a linguagem Python trabalha com dois
tipos de arquivos
 arquivo texto
 arquivo binário

2
30/05/2022

Tipos de Arquivos
 Arquivo texto
 armazena caracteres que podem ser mostrados
diretamente na tela ou modificados por um editor de
textos simples como o Bloco de Notas.
 Os dados são gravados como caracteres de 8 bits.
 Ex.: Um número inteiro de 32 bits com 8 dígitos ocupará 64
bits no arquivo (8 bits por dígito).

Tipos de Arquivos
 Arquivo binário
 armazena uma sequência de bits que está sujeita as
convenções dos programas que o gerou.
 Ex: arquivos executáveis, arquivos compactados, arquivos de
registros, etc.
 os dados são gravados na forma binária (do mesmo
modo que estão na memória).
 Ex.: um número inteiro de 32 bits com 8 dígitos ocupará 32
bits no arquivo.

3
30/05/2022

Tipos de Arquivos
 Ex: Os dois trechos de arquivo abaixo possuem os
mesmo dados :
nome = “Ricardo”;
i = 30;
a = 1.74;

Manipulando arquivos
 A linguagem Python possui uma série de funções para
manipulação de arquivos
 Suas funções se limitam a abrir/fechar e ler
caracteres/bytes/linhas do arquivo
 É tarefa do programador criar a função que lerá um
arquivo de uma maneira específica
 Para manipularmos um arquivo, vamos precisar apenas
de um objeto do tipo file

4
30/05/2022

Abrindo um arquivo
 Para a abertura de um arquivo, usa-se a função open()

objeto-file = open(nome-arquivo,modo-abertura)

 O parâmetro nome-arquivo determina qual arquivo


deverá ser aberto, sendo que o mesmo deve ser válido
no sistema operacional que estiver sendo utilizado

Abrindo um arquivo
 No parâmetro nome-arquivo pode-se trabalhar com
caminhos absolutos ou relativos
 Caminho absoluto: descrição de um caminho desde o
diretório raiz
 C:\\Projetos\\dados.txt

 Caminho relativo: descrição de um caminho desde o


diretório corrente
 arq.txt

 ..\\dados.txt

5
30/05/2022

Abrindo um arquivo
 O modo de abertura determina que tipo de uso será
feito do arquivo
 A tabela a seguir mostra os modo válidos de abertura
de um arquivo

Modos de abertura
Modo Arquivo Função
"r" Texto Leitura. Arquivo deve existir.
"w" Texto Escrita. Cria arquivo se não houver. Apaga o anterior se ele existir.
"a" Texto Escrita. Os dados serão adicionados no fim do arquivo ("append").

"rb" Binário Leitura. Arquivo deve existir.

"wb" Binário Escrita. Cria arquivo se não houver. Apaga o anterior se ele existir.

"ab" Binário Escrita. Os dados serão adicionados no fim do arquivo ("append").


"r+" Texto Leitura/Escrita. O arquivo deve existir e pode ser modificado.

"w+" Texto Leitura/Escrita. Cria arquivo se não houver. Apaga o anterior se ele existir.

"a+" Texto Leitura/Escrita. Os dados serão adicionados no fim do arquivo ("append").

"rb+" Binário Leitura/Escrita. O arquivo deve existir e pode ser modificado.

"wb+" Binário Leitura/Escrita. Cria arquivo se não houver. Apaga o anterior se ele existir.

"ab+" Binário Leitura/Escrita. Os dados serão adicionados no fim do arquivo ("append").

6
30/05/2022

Abrindo um arquivo
 Um arquivo texto pode ser aberto para escrita
utilizando o seguinte conjunto de comandos

 Neste caso, o arquivo texte.txt será aberto. Agora já


podemos escrever dados ou fechá-lo

Fechando um arquivo
 Como visto no slide anterior, sempre que terminamos
de usar um arquivo que foi aberto, devemos fechá-lo.
Para isso usa-se a função close()

objeto-file.close()

 Mas por que precisamos fechar o arquivo?

7
30/05/2022

Fechando um arquivo
 Por que precisamos fechar o arquivo?
 Ao fechar um arquivo, todo dado que tenha
permanecido no "buffer" é gravado
 O "buffer“ é uma região de memória que armazena
temporariamente os caracteres a serem gravados em
disco imediatamente
 Apenas quando o "buffer" está cheio é que seu conteúdo
é escrito no disco

Fechando um arquivo
 Mas por que utilizar um “buffer”?? Eficiência!
 Para ler e escrever arquivos no disco temos que
posicionar a cabeça de gravação em um ponto específico
do disco
 Se tivéssemos que fazer isso para cada caractere
lido/escrito, a leitura/escrita de um arquivo seria uma
operação muita lenta
 Assim a gravação só é realizada quando há um volume
razoável de informações a serem gravadas ou quando o
arquivo for fechado

8
30/05/2022

Fechando um arquivo

Escrita/Leitura em Arquivos
 Uma vez aberto um arquivo, podemos ler ou escrever
nele
 Para tanto, a linguagem Python conta com uma série
de funções de escrita/leitura que variam de
funcionalidade para atender as diversas aplicações
 Todas as funções que serão vistas trabalham com a
escrita/leitura de strings.
 Cabe ao programador tratar os dados que escritos/lidos
do artigo

9
30/05/2022

Posição do arquivo
 Ao se trabalhar com arquivos, existe uma espécie de
posição onde estamos dentro do arquivo. É nessa
posição onde será lido ou escrito o próximo caractere
ou cadeia de caracteres
 Quando utilizando o acesso sequencial, raramente é
necessário modificar essa posição
 Após cada leitura, a posição no arquivo é
automaticamente atualizada para a próxima posição a
ser lida
 Após cada escrita, a posição no arquivo é
automaticamente atualizada para a próxima posição a
ser escrita

Escrita em Arquivos
 Para escrever em um arquivo usa-se a função write().
Forma geral:

objeto-file.write(string)

 Esta função recebe como parâmetro uma cadeia de


caracteres (string) que será escrita no arquivo aberto
especificado por objeto-file

10
30/05/2022

Escrita em Arquivos
 A função write()
Exemplo
permite gravar strings
contendo qualquer tipo
de dado, inclusive dados
formatados e sequências
de escape
 Cabe então ao Saída
programador colocar os
dados a serem gravados
dentro da string

Leitura em Arquivos
 Enquanto para escrever em um arquivos utilizamos
apenas a função write(), para ler temos várias opções
 objeto-file.read()
 objeto-file.read(n)
 objeto-file.readline()
 objeto-file.readlines()

11
30/05/2022

Leitura em Arquivos
 A função read() lê todo o
Exemplo
conteúdo de um arquivo aberto
e armazena em uma string
 Os dados serão lidos
exatamente como estão salvos
no arquivo, inclusive com as Saída
quebras de linhas.

Leitura em Arquivos
 A função read(N) lê apenas os
Exemplo
N próximos caracteres de um
arquivo aberto e armazena em
uma string
 Como na função read(), os
dados serão lidos exatamente Saída
como estão salvos no arquivo,
inclusive com as quebras de
linhas.

12
30/05/2022

Leitura em Arquivos
 A função readline() lê apenas
Exemplo
uma linha de texto de um
arquivo aberto e armazena em
uma string
 Essa função lê da posição atual
no arquivo até encontrar um Saída
quebra de linha
 O caractere de quebra de linha
(\n) será armazenado dentro
da string

Leitura em Arquivos
 A função readlines() lê todo o
Exemplo
conteúdo de um arquivo aberto
e armazena em uma lista de
strings
 O caractere de quebra de linha
(\n) separa uma string da outra
e será armazenado dentro da
string
Saída

13
30/05/2022

Lendo um arquivo até o final


 Diferente de outras linguagens, Python não possui um
teste de fim de arquivo (EOF, end of file)
 Em Python, a indicação de final de arquivo se dá pela
ausência de bytes retornada por uma função de leitura

 Assim, a melhor maneira de se verificar se chegamos


ao final do arquivo é testar se algo foi retornado pela
função de leitura

Lendo um arquivo até o final


Exemplo
 O teste de final de arquivo pode
ser facilmente implementado
com uma construção do tipo

while True / break


Saída
 Basicamente, criamos um laço
infinito (while True) e sempre
que a leitura retorna nada
interrompemos o laço (break)

14
30/05/2022

Tratamento de erros e exceções


 Nenhum sistema é perfeito. Todo sistema está sujeito a
ações que causam anomalias
 Divisão por zero, raíz quadrada de um número negativo,
abrir um arquivo que não existe

 Em algum momento qualquer sistema terá que tratar


uma exceção, e é melhor ele estar preparado para isso
 Ou o usuário terá seu sistema encerrado de forma
inesperada
 Ou receberá uma mensagem incompreensível

15
30/05/2022

Instruções try-except
 Uma forma de apanhar os erros e exceções que podem
ocorrer no nosso programa Python é usar o comando
try-except
 Forma geral

Tratar qualquer exceção Tratar uma determinada exceção

Instruções try-except
 Um bloco try delimita um segmento do programa
onde alguma coisa errada pode acontecer
 Já o bloco except contém o código que será executado
se a exceção ocorrer

16
30/05/2022

Instruções try-except
 Um bloco try pode possuir mais de um bloco except
 Nesse caso, cada bloco except pode tratar um tipo de
exceção específica

Instruções try-except
 Algumas exceções já pré-definidas
 IOError
 Erros de leitura/escrita de arquivos
 ValueError
 Parâmetros fora do domínio (exemplo, sqrt(-1))
 IndexError
 Índice fora de limites
 TypeError
 Erro de tipos

17
30/05/2022

Instruções try-finally
 A instrução try-finally é similar a try-except
 A instrução finally sempre é executada
 O código que estiver no bloco finally sempre será
executado, independentemente se ocorre ou não uma
exceção
 Forma geral

Instruções try-finally
 A instrução finally é muito útil quando queremos
liberar algum recurso utilizado, como fechar arquivo
 Assim, mesmo que dê erro na leitura do arquivo, o
mesmo será fechado.

18
30/05/2022

Instruções try-finally
 Pode-se ainda usar as instruções try, except e finally
em conjunto

Material Complementar
 Vídeo Aulas
 Aula 34 - Arquivos: definição
 https://youtu.be/1ZFe-OqMB28
 Aula 35 - Arquivos: abrindo e fechando
 https://youtu.be/vtc5P6V_8t8
 Aula 36 - Arquivos: leitura e escrita
 https://youtu.be/VscBZSm4K10
 Aula 37 - Tratamento de erros e exceções
 https://youtu.be/FxCEHvk3SjI

19

Você também pode gostar