Entrada/saída de arquivos em Python

Operações de entrada/saída de arquivos são cruciais em qualquer linguagem de programação. Elas permitem ler dados de uma fonte (como uma base de dados ou um arquivo) e escrever dados para um destino. No contexto da Inteligência Artificial (IA), as operações de entrada/saída de arquivos são amplamente utilizadas para tarefas como pré-processamento de dados, treinamento de modelos e avaliação.
Neste post, abordaremos operações básicas de entrada/saída de arquivos disponíveis em Python, incluindo a leitura e escrita de diversos formatos.
Modos de Leitura de Arquivos
Quando se trata de ler arquivos no Python, existem três modos principais que você deve conhecer:
‘r’: modo de leitura. Este é o modo padrão usado quando um arquivo é aberto sem especificar outro modo.
‘w’: modo de escrita. Este modo permite escrever dados em um arquivo novo ou substituir o conteúdo existente.
‘a’: modo de anexação. Este modo permite adicionar dados no final de um arquivo existente.
Leitura de Arquivos de Texto
Vamos começar com a leitura de arquivos de texto usando a função open(), que retorna um objeto de arquivo. Você pode usar este objeto de arquivo para ler o conteúdo do arquivo com os métodos readline(), readlines() ou read(). A diferença entre esses três métodos é simples. O método read() retorna todo o texto. O método readlines() retorna uma lista com todas as linhas de um texto. Já o método readline() retorna somente uma linha do arquivo. Veja exemplos de como usá-los. Primeiro, o método read():
# Abre um arquivo de texto em modo de leitura
f = open("meu_exemplo.txt", "r")
# Lê todo o conteúdo do arquivo para a memória
dados = f.read()
print(dados) # imprime todo o conteúdo
O método readlines() retorna todas as linhas no arquivo como uma lista. Cada linha é um item no objeto de lista. O método pode aceitar como argumento o tamanho, em bytes, do texto que deve ser retornado.
f = open("meu_exemplo.txt", "r")
linhas = f.readlines() # Lê o conteúdo do arquivo e o retorna como uma lista
print(linhas)
O método readlines() pode ser facilmente usado em um loop para retornar linha por linha. O método strip() pode ser adicionado para remover caracteres de espaço em branco à esquerda e à direita de uma string.
for linha in linhas:
print(linha.strip())
O método readline() retorna apenas uma linha do texto. Se for chamado diversas vezes, ele retornará diferentes linhas em sequência como no exemplo abaixo:
f = open("meu_exemplo.txt", "r")
primeira_linha = f.readline() # Lê o conteúdo do arquivo e retorna apenas uma linha - neste caso, a primeira
segunda_linha = f.readline() # retorna a segunda linha
print(primeira_linha, segunda_linha)
Escrita de Dados em Arquivos de Texto
Escrever dados em arquivos de texto com Python é muito simples. Você pode usar o método write() para escrever strings ou bytes (para dados binários). Porém, o local onde o texto especificado será inserido depende do modo de arquivo usado. Se o modo usado for “a”, o texto será inserido no final do arquivo. Se sua escolha for “w”, o arquivo será esvaziado antes que o novo texto seja inserido.
# abre arquivo com modo "w"
arquivo = open("exemplo.txt", "w") # para usar o modo "a", basta usá-lo no lugar de "w"
# Escreve alguns dados no arquivo
arquivo.write("Olá, Mundo!")
# Fecha o arquivo
arquivo.close()
Veja que, no exemplo acima, foi preciso fechar explicitamente o arquivo com close(). Para evitar ter que fechar o arquivo explicitamente, você pode usar o comando with, que fecha automaticamente o arquivo quando você terminar de usá-lo:
# Abre um arquivo de texto em modo de escrita e o fecha automaticamente
with open("exemplo.txt", "w") as arquivo:
# Escrever alguns dados no arquivo
arquivo.write("Olá, Mundo!")
Leitura e Escrita de Arquivos CSV
Arquivos CSV (Comma Separated Values) são amplamente utilizados em IA e também para trocar dados entre aplicações. No Python, você pode usar o módulo csv para ler e escrever arquivos CSV:
import csv
# Abre um arquivo CSV em modo de leitura
with open("exemplo.csv", "r") as arquivo:
leitor = csv.reader(arquivo)
# Lê o conteúdo do arquivo
dados = list(leitor)
print(dados)
# Escreve dados em um arquivo CSV
with open("exemplo.csv", "w", newline="") as arquivo:
escritor = csv.writer(arquivo)
# Escreve alguns dados de exemplo no arquivo
escritor.writerow(["Nome", "Idade"])
escritor.writerow(["João", 30])
Leitura e Escrita de Arquivos JSON
Arquivos JSON (JavaScript Object Notation) são uma escolha extremamente popular para trocar dados entre aplicações. No Python, podemos usar o módulo json para ler e escrever arquivos JSON:
import json
# Abre um arquivo JSON em modo de leitura
with open("exemplo.json", "r") as arquivo:
# Lê o conteúdo do arquivo
dados = json.load(arquivo)
print(dados)
# Escreve dados em um arquivo JSON
dados = {"nome": "João", "idade": 30}
with open("exemplo.json", "w") as arquivo:
json.dump(dados, arquivo)
Tratamento de Erros e Exceções
Ao trabalhar com arquivos em Python, é essencial tratar erros e exceções que podem ocorrer. Você pode usar blocos try-except para capturar exceções específicas. No exemplo abaixo, ilustramos como usar esse bloco para testar se o arquivo existe:
try:
# tenta abrir um arquivo em modo de leitura
with open("exemplo.txt", "r") as arquivo:
dados = arquivo.read()
except FileNotFoundError:
print("Arquivo não encontrado!") # imprime mensagem caso arquivo não seja encontrado
Conclusões
Neste post, abordamos os fundamentos das operações de entrada/saída de arquivos em Python, incluindo a leitura e escrita de diversos formatos de arquivos. Ao conhecer esses conceitos, você estará preparado para lidar com uma ampla gama de tarefas em IA e também para situações envolvendo a troca de dados entre aplicações.