Trabalhar com arquivos de texto é uma das tarefas mais comuns na programação. Aprender como ler arquivo TXT no Python é fundamental para quem está começando a desenvolver scripts de automação, análise de dados ou qualquer projeto que precise processar informações armazenadas em texto.
Neste guia completo, você vai descobrir todas as formas de ler arquivos TXT usando Python. Vamos desde o básico até técnicas mais avançadas, sempre com exemplos práticos que você pode testar agora mesmo.
Para complementar este conteúdo, confira este vídeo explicativo do canal Dev Aprender que demonstra na prática como trabalhar com arquivos em Python:
O Que É um Arquivo TXT
Um arquivo TXT é um formato simples de documento que contém apenas texto puro. Ele não possui formatação especial como negrito, cores ou fontes diferentes. Por isso, é considerado um formato universal e leve.
Os arquivos de texto são usados em muitas situações. Você pode encontrá-los em arquivos de configuração, logs de sistemas, dados exportados de planilhas e até em projetos de análise de dados.
A grande vantagem de trabalhar com TXT é que qualquer programa pode abrir esse tipo de arquivo. Além disso, eles ocupam pouco espaço no disco e são fáceis de manipular com Python.
Por Que Aprender a Ler Arquivos no Python
Saber manipular arquivos é uma habilidade essencial para qualquer programador. Quando você domina essa técnica, consegue automatizar processos repetitivos que antes levavam horas para serem concluídos manualmente.
Imagine que você precisa processar relatórios diários salvos em formato TXT. Com Python, você pode criar um script que lê esses arquivos, extrai as informações importantes e gera um resumo automático.
Além disso, muitas bibliotecas e ferramentas de automação dependem da capacidade de ler e escrever arquivos. Portanto, essa é uma base fundamental que você vai usar constantemente em seus projetos.
Método Básico: Usando a Função open()
A forma mais comum de ler arquivo TXT no Python é usar a função built-in open(). Ela é nativa da linguagem e não precisa de nenhuma biblioteca externa.
Veja como funciona o código básico:
arquivo = open('dados.txt', 'r')
conteudo = arquivo.read()
print(conteudo)
arquivo.close()Neste exemplo, primeiro abrimos o arquivo usando open(). O primeiro parâmetro é o nome do arquivo e o segundo é o modo de abertura. A letra ‘r’ significa “read” (ler).
Depois usamos o método read() para ler todo o conteúdo. Por fim, é importante sempre fechar o arquivo com close() para liberar recursos do sistema.
Lendo Arquivos com Context Manager
Existe uma forma mais segura e elegante de trabalhar com arquivos em Python. O context manager usa a palavra-chave with e fecha o arquivo automaticamente quando você termina de usá-lo.
Veja como fica o código:
with open('dados.txt', 'r') as arquivo:
conteudo = arquivo.read()
print(conteudo)Note que não precisamos usar close(). O Python faz isso sozinho quando o bloco with termina. Isso evita problemas caso aconteça algum erro durante a leitura.
Essa é a forma recomendada pela comunidade Python. Ela torna o código mais limpo e seguro, especialmente em projetos maiores onde você trabalha com muitos arquivos.
Lendo o Arquivo Linha por Linha
Nem sempre você quer ler o arquivo inteiro de uma vez. Quando você trabalha com arquivos grandes, é mais eficiente processar uma linha por vez para economizar memória.
Você pode usar o método readline() para ler apenas uma linha:
with open('dados.txt', 'r') as arquivo:
linha = arquivo.readline()
print(linha)Ou você pode usar um loop for para percorrer todas as linhas:
with open('dados.txt', 'r') as arquivo:
for linha in arquivo:
print(linha.strip())O método strip() remove espaços em branco e quebras de linha extras. Isso deixa a saída mais limpa e organizada.
Usando readlines() para Criar uma Lista
O método readlines() é útil quando você quer carregar todas as linhas do arquivo e armazená-las em uma lista. Cada linha vira um elemento separado.
Veja o exemplo:
with open('dados.txt', 'r') as arquivo:
linhas = arquivo.readlines()
print(linhas)Isso retorna algo como ['Primeira linha\n', 'Segunda linha\n', 'Terceira linha\n']. Note que as quebras de linha ficam no final de cada elemento.
Para remover essas quebras de linha, você pode usar list comprehension:
with open('dados.txt', 'r') as arquivo:
linhas = [linha.strip() for linha in arquivo.readlines()]
print(linhas)Essa técnica é muito útil quando você precisa manipular o conteúdo depois, como filtrar informações específicas ou fazer análises.
Lidando com Encodings Diferentes
Um problema comum ao ler arquivos TXT no Python é encontrar erros de codificação. Isso acontece quando o arquivo foi salvo com uma codificação diferente da padrão.
Os encodings mais comuns são UTF-8, Latin-1 e ASCII. Se você não especificar o encoding correto, pode ver caracteres estranhos ou receber erros.
Para resolver isso, use o parâmetro encoding na função open():
with open('dados.txt', 'r', encoding='utf-8') as arquivo:
conteudo = arquivo.read()
print(conteudo)Se você não sabe qual encoding usar, teste com UTF-8 primeiro. Ele é o mais comum e funciona na maioria dos casos. Se ainda tiver problemas, tente Latin-1 ou ASCII.
Tratando Erros ao Ler Arquivos
Sempre que você trabalha com arquivos, pode encontrar problemas. O arquivo pode não existir, você pode não ter permissão para lê-lo ou ele pode estar corrompido.
Use o bloco try-except para capturar e tratar esses erros:
try:
with open('dados.txt', 'r') as arquivo:
conteudo = arquivo.read()
print(conteudo)
except FileNotFoundError:
print('Arquivo não encontrado!')
except PermissionError:
print('Sem permissão para ler o arquivo!')
except Exception as e:
print(f'Erro inesperado: {e}')Esse código captura três tipos de erros diferentes. O FileNotFoundError acontece quando o arquivo não existe. O PermissionError ocorre quando você não tem direitos de acesso.
O último except pega qualquer outro erro que você não previu. Isso torna seu programa mais robusto e fácil de debugar.
Lendo Arquivos em Diretórios Diferentes
Às vezes o arquivo que você quer ler não está na mesma pasta do seu script Python. Nesse caso, você precisa especificar o caminho completo do arquivo.
No Windows, os caminhos usam barras invertidas:
with open('C:\\Users\\Usuario\\Documents\\dados.txt', 'r') as arquivo:
conteudo = arquivo.read()Note que usamos duas barras invertidas (\\) porque a barra simples tem significado especial em strings Python.
Uma forma mais prática é usar barras normais ou adicionar um r antes da string:
with open(r'C:\Users\Usuario\Documents\dados.txt', 'r') as arquivo:
conteudo = arquivo.read()Isso torna o código mais limpo e evita erros de digitação.
Processando Dados do Arquivo
Depois de ler o arquivo TXT, você geralmente precisa processar os dados de alguma forma. Pode ser para contar palavras, encontrar padrões ou extrair informações específicas.
Veja um exemplo prático de como contar o número de linhas e palavras:
with open('dados.txt', 'r') as arquivo:
linhas = arquivo.readlines()
num_linhas = len(linhas)
palavras = 0
for linha in linhas:
palavras += len(linha.split())
print(f'Linhas: {num_linhas}')
print(f'Palavras: {palavras}')Esse script lê o arquivo, conta quantas linhas existem e depois conta as palavras em cada linha. O método split() divide a linha em palavras usando os espaços como separador.
Você pode adaptar essa lógica para fazer diversos tipos de análise, como buscar palavras-chave ou calcular estatísticas.
Trabalhando com Arquivos Grandes
Quando você trabalha com arquivos muito grandes, não é recomendado carregar tudo na memória de uma vez. Isso pode travar seu programa ou até mesmo seu computador.
A melhor prática é processar o arquivo linha por linha:
with open('arquivo_grande.txt', 'r') as arquivo:
for linha in arquivo:
# Processar cada linha individualmente
if 'palavra-chave' in linha:
print(linha.strip())Dessa forma, apenas uma linha fica na memória por vez. Isso permite trabalhar com arquivos de vários gigabytes sem problemas.
Você também pode usar o método read() com um tamanho específico de bytes para ler pedaços do arquivo:
with open('arquivo_grande.txt', 'r') as arquivo:
pedaco = arquivo.read(1024) # Lê 1KB por vez
while pedaco:
# Processar pedaço
print(pedaco)
pedaco = arquivo.read(1024)Exemplos Práticos de Uso
Vamos ver alguns exemplos práticos de como você pode usar a leitura de arquivos TXT em projetos reais.
Exemplo 1: Extrair emails de um arquivo
import re
with open('contatos.txt', 'r') as arquivo:
conteudo = arquivo.read()
emails = re.findall(r'\b[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Z|a-z]{2,}\b', conteudo)
print(emails)Exemplo 2: Contar ocorrências de uma palavra
palavra_busca = 'Python'
contador = 0
with open('texto.txt', 'r') as arquivo:
for linha in arquivo:
contador += linha.lower().count(palavra_busca.lower())
print(f'A palavra "{palavra_busca}" aparece {contador} vezes')Exemplo 3: Ler arquivo de configuração
configuracoes = {}
with open('config.txt', 'r') as arquivo:
for linha in arquivo:
if '=' in linha:
chave, valor = linha.strip().split('=')
configuracoes[chave] = valor
print(configuracoes)Esses exemplos mostram como você pode usar as técnicas de leitura de arquivos em situações do dia a dia de um programador.
Diferenças Entre Modos de Abertura
A função open() aceita diferentes modos de abertura além do ‘r’ que vimos até agora. Cada modo serve para um propósito específico.
Veja os modos mais comuns:
- ‘r’: Leitura (padrão). O arquivo deve existir.
- ‘w’: Escrita. Cria um arquivo novo ou sobrescreve se já existir.
- ‘a’: Adicionar. Escreve no final do arquivo sem apagar o conteúdo.
- ‘r+’: Leitura e escrita. O arquivo deve existir.
- ‘rb’: Leitura em modo binário (para arquivos não-texto).
Para ler arquivos TXT, você vai usar principalmente o modo ‘r’. Mas é importante conhecer os outros modos para quando precisar escrever em arquivos ou trabalhar com outros formatos.
Boas Práticas ao Trabalhar com Arquivos
Seguir boas práticas torna seu código mais profissional e evita problemas futuros. Aqui estão algumas dicas importantes para trabalhar com arquivos em Python.
Sempre use o context manager (with) em vez de abrir e fechar manualmente. Isso garante que o arquivo será fechado mesmo se acontecer um erro.
Trate possíveis erros com blocos try-except. Isso evita que seu programa quebre quando encontrar um problema inesperado.
Especifique sempre o encoding, especialmente se você trabalha com textos em português. Use encoding='utf-8' na maioria dos casos.
Para arquivos grandes, processe linha por linha em vez de carregar tudo na memória. Isso economiza recursos e torna seu programa mais eficiente.
Use caminhos relativos sempre que possível, ou considere usar a biblioteca pathlib para manipular caminhos de forma mais elegante e compatível entre sistemas operacionais.
Comparação com Outras Linguagens
Se você já programou em outras linguagens, pode estar se perguntando como a leitura de arquivos em Python se compara. A boa notícia é que Python torna essa tarefa muito mais simples.
Em linguagens como Java, você precisa de várias linhas de código e imports complexos. Em JavaScript, a forma de ler arquivos varia entre Node.js e o navegador.
Python oferece uma sintaxe direta e intuitiva. Com apenas três linhas você pode ler um arquivo completo de forma segura:
with open('arquivo.txt', 'r') as f:
conteudo = f.read()
print(conteudo)Essa simplicidade é um dos motivos pelos quais Python é tão popular para iniciantes e para tarefas de automação.
Perguntas Frequentes (FAQ)
1. Como ler apenas as primeiras linhas de um arquivo TXT?
Use o método readline() em um loop com um contador ou utilize slicing na lista retornada por readlines().
2. O que fazer quando aparecem caracteres estranhos ao ler o arquivo?
Isso indica problema de encoding. Tente especificar encoding=’utf-8′ ou encoding=’latin-1′ na função open().
3. É possível ler vários arquivos TXT de uma vez?
Sim, use um loop para percorrer os nomes dos arquivos e processe cada um individualmente.
4. Como saber se um arquivo existe antes de tentar abri-lo?
Use a biblioteca os ou pathlib para verificar a existência com os.path.exists() ou Path.exists().
5. Qual a diferença entre read() e readlines()?
O read() retorna todo conteúdo como uma única string. O readlines() retorna uma lista com cada linha como elemento separado.
6. Posso ler um arquivo TXT diretamente de uma URL?
Sim, mas você precisa usar a biblioteca requests para baixar o conteúdo primeiro e depois processá-lo.
7. Como remover linhas vazias ao ler um arquivo?
Use uma list comprehension com strip() para filtrar linhas vazias: [linha for linha in arquivo if linha.strip()].
8. O método with open fecha o arquivo automaticamente?
Sim, o context manager fecha o arquivo automaticamente quando o bloco with termina, mesmo se ocorrer um erro.
9. Posso modificar o conteúdo enquanto leio o arquivo?
Não diretamente. Você precisa ler o conteúdo, fazer as modificações e depois escrever em um novo arquivo ou sobrescrever o original.
10. Como ler apenas parte de um arquivo muito grande?
Use o método read(tamanho) especificando quantos bytes quer ler ou processe linha por linha com um loop for.
11. É necessário instalar alguma biblioteca para ler arquivos TXT?
Não, a função open() é nativa do Python e não requer instalação de bibliotecas externas.
12. Como lidar com arquivos que usam quebras de linha diferentes?
Python lida automaticamente com diferentes tipos de quebra de linha (Windows, Linux, Mac) quando você abre em modo texto.








