Abrindo e Fechando Arquivos - Python
Python suporta diversos tipos de arquivos, mas, de forma geral, eles podem ser divididos em dois tipos: texto e binário. Arquivos de texto são, por exemplo, arquivos com extensões como csv, txt e html: em geral, quaisquer arquivos que armazenam informações em formato de texto. Arquivos binários incluem imagens, áudios, vídeos etc. Dependendo do tipo de arquivo, a forma de trabalhar com ele pode variar.
Ao trabalhar com arquivos, é necessário seguir uma sequência de operações:
Abrir o arquivo usando a função
open()
Ler o arquivo com o método
ou escrever no arquivo usando o métodoread()
write()
Fechar o arquivo com o método
close()
Para começar a trabalhar com um arquivo, é preciso abri-lo usando a função open()
open(file, mode)
O primeiro parâmetro da função representa o caminho para o arquivo. Esse caminho pode ser absoluto, começando com a letra da unidade de disco, por exemplo, C://somedir/somefile.txt
somedir/somefile.txt—neste caso
O segundo argumento, mode, define o modo de abertura do arquivo, dependendo do que pretendemos fazer com ele. Existem quatro modos principais:
: O arquivo é aberto para leitura. Se o arquivo não for encontrado, é exceçãor (Read)
.FileNotFoundError
: O arquivo é aberto para escrita. Se o arquivo não existir, ele é criado. Se já existir, ele é recriado e os dados antigos são apagados.w (Write)
: O arquivo é aberto para adição. Se o arquivo não existir, ele é criado. Se já existir, os dados são adicionados ao final.a (Append)
: Usado para trabalhar com arquivos binários. É aplicado junto com outros modos, comob (Binary)
ouw
, por exemplo,r
(leitura de arquivos binários) erb
(escrita de arquivos binários).wb
Outros modos incluem:
:O arquivo é aberto para leitura e escrita. Se o arquivo não for encontrado, é levantada a exceçãor+
.FileNotFoundError
: O arquivo é aberto para leitura e escrita. Se o arquivo não existir, ele é criado automaticamente. Se já existir, ele é sobrescrito.w+
: O arquivo é aberto para leitura e escrita. Se o arquivo não existir, ele é criado automaticamente. Se já existir, os dados são adicionados ao final.a+
Por exemplo, abrindo um arquivo de texto para escrita:
myfile = open("hello.txt", "w")
Ou abrindo um arquivo binário para leitura:
myfile = open("image.png", "rb")
Após concluir o trabalho com o arquivo, é importante fechá-lo usando o método close()
Por exemplo, vamos abrir para escrita um arquivo chamado "hello.txt"
myfile = open("hello.txt", "w")
myfile.close()
Ao abrir o arquivo ou durante o trabalho com ele, podemos nos deparar com várias exceções, como falta de acesso ao arquivo. Nesse caso, o programa exibirá um erro e não chegará a executar o método close()
Para lidar com isso, podemos tratar as exceções:
try:
myfile = open("hello.txt", "w")
try:
# Aqui são executadas as funções de trabalho com o arquivo
print("Trabalhando com o arquivo")
except Exception as ex:
# Se ocorrer um erro durante o trabalho com o arquivo, ele será tratado aqui
print("Erro ao trabalhar com o arquivo:", ex)
finally:
# Este bloco é sempre executado, independentemente de ocorrer um erro ou não durante o trabalho com o arquivo
myfile.close()
except Exception as ex:
# Erro ao abrir o arquivo
print("Erro ao abrir o arquivo:", ex)
No exemplo acima, o bloco try
except
try
except
finally
No entanto, a maneira mais recomendada de lidar com arquivos em Python é usando a construção with
try:
with open("hello.txt", "w") as myfile:
print("Trabalhando com o arquivo")
except Exception as ex:
print("Erro ao trabalhar com arquivo:", ex)
Neste caso, o arquivo é fechado automaticamente após a execução do bloco with
close()