Atualizado: 04/11/2024

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 read() ou escrever no arquivo usando o método 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(), que tem a seguinte definição formal:

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. Ou pode ser relativo, como somedir/somefile.txt—neste caso, a busca pelo arquivo será feita em relação ao local onde o script Python está sendo executado.

O segundo argumento, mode, define o modo de abertura do arquivo, dependendo do que pretendemos fazer com ele. Existem quatro modos principais:

  • r (Read): O arquivo é aberto para leitura. Se o arquivo não for encontrado, é exceção FileNotFoundError.

  • w (Write): 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.

  • a (Append): O arquivo é aberto para adição. Se o arquivo não existir, ele é criado. Se já existir, os dados são adicionados ao final.

  • b (Binary): Usado para trabalhar com arquivos binários. É aplicado junto com outros modos, como w ou r, por exemplo, rb (leitura de arquivos binários) e wb (escrita de arquivos binários).

Outros modos incluem:

  • r+:O arquivo é aberto para leitura e escrita. Se o arquivo não for encontrado, é levantada a exceção FileNotFoundError.

  • w+: O arquivo é aberto para leitura e escrita. Se o arquivo não existir, ele é criado automaticamente. Se já existir, ele é sobrescrito.

  • a+: 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.

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(). Esse método libera todos os recursos associados ao arquivo.

Por exemplo, vamos abrir para escrita um arquivo chamado "hello.txt" e fechá-lo:

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(), deixando o arquivo aberto.

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 tenta abrir o arquivo. Se ocorrer um erro, ele é tratado no bloco except. Se o arquivo for aberto com sucesso, o bloco try executa as funções de trabalho com o arquivo. Se ocorrer um erro durante o trabalho com o arquivo, ele é tratado no bloco except. O bloco finally é sempre executado, independentemente de ocorrer um erro ou não durante o trabalho com o arquivo.

No entanto, a maneira mais recomendada de lidar com arquivos em Python é usando a construção with, que gerencia automaticamente os recursos do arquivo:

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, independentemente de ocorrer um erro ou não. Isso evita que o arquivo fique aberto, eliminando a necessidade de chamar o método close().

Política de Privacidade

Copyright © www.programicio.com Todos os direitos reservados

É proibida a reprodução do conteúdo desta página sem autorização prévia do autor.

Contato: programicio@gmail.com