Arquivos de Texto em Python
Trabalhar com dados é uma parte crucial da atividade de programadores. Mas ela também é vital para a construção de modelos inteligentes usando algoritmos de machine learning. Embora muitas tarefas do campo da IA envolvam dados numéricos, há também cenários em que é necessário trabalhar com arquivos de texto. Neste post, abordaremos os fundamentos sobre como ler e escrever arquivos de texto em Python, incluindo caminhos de arquivos, modos (por exemplo, r, w) e codificação/decodificação.
Arquivos de Texto
Um arquivo de texto é um arquivo que contém dados legíveis por humanos, como texto simples ou texto formatado. Ao trabalhar com arquivos de texto em Python, você precisará considerar as seguintes coisas:
Caminhos de arquivos: o caminho do seu arquivo de texto. Ele pode ser um arquivo local em seu computador ou um arquivo remoto hospedado online.
Modos: o modo em que você abre o arquivo, r significa ler, w significa escrever, a é anexar e x é utilizado para criar.
Codificação/Decodificação: determina como codificar e decodificar dados ao escrever ou ler arquivos de texto.
Aprenda a definir o caminho de um arquivo
Num código Python, podemos abrir um arquivo usando o comando open() e especificando o caminho do arquivo. O caminho é o local do arquivo no disco. Existe caminho relativo e caminho absoluto. Um caminho absoluto contém a lista completa de diretórios necessária para localizar o arquivo, como mostrado no exemplo:
# abre arquivo especificando o caminho absoluto para seu local
f = open("D:\\Documentos\meu_arquivo.txt")
# abre arquivo especificando o caminho relativo para seu local
f1 = open("./meu_arquivo.txt")
Ler Arquivos de Texto
Como já mostramos anteriormente, para ler um arquivo de texto em Python, você precisará abrir o arquivo no modo de leitura (r) e usar read() para lê-lo. Veja um exemplo:
# abre arquivo em modo de leitura
with open('exemplo.txt', 'r') as f:
dados = f.read()
print(dados) # imprime dados do arquivo
Neste código, a função open() foi usada para criar um objeto de arquivo. O modo r foi utilizado para informar ao Python que ele deve ler o arquivo ao invés de escrever nele. O comando with garante que o arquivo seja fechado corretamente quando terminarmos de usá-lo.
Escrever Arquivos de Texto
Para escrever dados em um arquivo de texto em Python, você precisará abrir o arquivo no modo de escrita (‘w’). Veja um exemplo:
# abre arquivo em modo de escrita
with open('exemplo.txt', 'w') as f:
file.write('Olá, Mundo!')
Neste código, a função open() foi utilizada para criar um novo objeto de arquivo. Usamos o modo w para informar ao Python que ele deve escrever no arquivo. O comando with, como explicado no exemplo anterior, garante que o arquivo seja fechado corretamente quando terminarmos de usá-lo.
Anexar novos dados a um Arquivo de Texto
Quando usamos o modo w para escrever texto num arquivo, ele substitui os conteúdos que o arquivo já possui. Ne sempre desejamos fazer essa substituição. Em muitos casos, queremos somente adicionar novos trechos a um texto existente. Em Python, podemos utilizar o modo a para anexar novos textos a um arquivo existente. Portanto, para anexar dados a um arquivo de texto existente em Python, você precisará abrir o arquivo no modo de anexação (‘a’). Veja um exemplo:
# Anexa dados a um arquivo de texto
with open('exemplo.txt', 'a') as file:
file.write('Este é um texto adicional.')
Neste código, após abrirmos um arquivo com a função open(), usamos o modo a para informar ao Python que ele deve anexar dados ao arquivo em vez de sobrescrever dados existentes.
Codificação/Decodificação
A codificação de arquivo é um método de conversão de caracteres em um formato específico que os computadores podem entender e armazenar. Ela define como um texto é representado como dados binários, garantindo que os caracteres sejam interpretados corretamente em diferentes sistemas e idiomas. Codificações diferentes representam o texto de formas diferentes. Alguns tipos comuns de codificação incluem UTF-8, ASCII, Latin-1 e UTF-16.
A codificação adequada do arquivo é importante para prevenir a corrupção de texto e garantir suporte a vários idiomas, como o português, que possui caracteres especiais como acentos e cedilhas. Porém, uma vez que um texto é codificado para armazenamento, na hora de abri-lo novamente, precisamos decodificá-lo de volta. Portanto, ao trabalhar com arquivos de texto, frequentemente você precisará considerar como codificar e decodificar dados. Em Python, você pode usar vários esquemas de codificação. No exemplo abaixo, mostramos como codificar uma string usando o UTF-8 e o método encode():
dado_codificado = 'Olá, Mundo!'.encode('utf-8')
print(dado_codificado)
Neste código, o método encode() foi usado para codificar os dados de string em bytes, com o modo de codificação UTF-8. Este é o modo de codificação mais universal.
Decodificação de Arquivos de Texto
Para decodificar o texto de um arquivo em Python, você precisará abrir o arquivo no modo de leitura (‘r’) e especificar um esquema de codificação. Veja um exemplo:
# Decodifica texto de um arquivo usando utf-8
with open('exemplo.txt', 'r', encoding='utf-8') as file:
dados_decodificados = file.read()
print(dados_decodificados)
Neste código, o arquivo foi aberto no modo de leitura através da especificação r. Selecionamos o esquema de codificação utf-8 para decodificar o arquivo.
Conclusão
Trabalhar com arquivos de texto em Python é uma tarefa fácil. Ele possui vários métodos que nos ajudam a lidar eficientemente com tarefas rotineiras. Usando a função open() e especificando modos (por exemplo, ‘r’, ‘w’), você pode ler e escrever dados em arquivos de texto com facilidade. Mesmo quando você precisar considerar a codificação/decodificação ao trabalhar com arquivos de texto, o Python possui métodos simples que permitem realizar essas tarefas rapidamente.