Como Ler Arquivos TXT no Python

Tempo de leitura: 14 minutos
Logo do Python, texto TXT e ícone de bloco de notas representando arquivos de texto

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:

YouTube player

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:

Python
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:

Python
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:

Python
with open('dados.txt', 'r') as arquivo:
    linha = arquivo.readline()
    print(linha)

Ou você pode usar um loop for para percorrer todas as linhas:

Python
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:

Python
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:

Python
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():

Python
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:

Python
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:

Python
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:

Python
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:

Python
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:

Python
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:

Python
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

Python
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

Python
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

Python
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:

Python
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.

Compartilhe:

Facebook
WhatsApp
Twitter
LinkedIn

Conteúdo do artigo

    Artigos relacionados

    Comparação visual entre Python 2 e Python 3 com ícones minimalistas
    Fundamentos
    Foto do Leandro Hirt

    Python 2 vs Python 3: Principais Diferenças

    Se você está começando a estudar Python ou já trabalha com a linguagem, provavelmente já se deparou com uma dúvida

    Ler mais

    Tempo de leitura: 20 minutos
    22/12/2025
    Pessoa pensando com um monitor desfocado ao fundo
    Fundamentos
    Foto do Leandro Hirt

    Tipos de Dados em Python: int, float, str, list e dict

    Aprenda tudo sobre os principais tipos de dados em Python: int, float, str, list e dict. Guia completo com exemplos

    Ler mais

    Tempo de leitura: 14 minutos
    21/12/2025
    Pessoa usando tablet com caneta digital para planejar tarefas em checklist, representando organização, planejamento e produtividade digital.
    Fundamentos
    Foto do Leandro Hirt

    Como Ordenar Listas no Python (Sort vs Sorted)

    Você já ficou confuso sobre quando usar sort() ou sorted() para organizar suas listas em Python? Não está sozinho. Esses

    Ler mais

    Tempo de leitura: 12 minutos
    20/12/2025
    Logo do Python com uma faca, simbolizando fatiamento
    Fundamentos
    Foto do Leandro Hirt

    Fatiamento em Python: Tudo Sobre Slicing

    O fatiamento (ou slicing) é uma técnica fundamental em Python que permite extrair partes específicas de sequências como listas, strings

    Ler mais

    Tempo de leitura: 11 minutos
    13/12/2025
    Logo CSV e logo do Python com um símbolo de '+'
    Fundamentos
    Foto do Leandro Hirt

    Como trabalhar com arquivos CSV no Python

    Aprenda a ler, escrever e manipular arquivos CSV usando Python. Guia completo com exemplos práticos da biblioteca csv padrão e

    Ler mais

    Tempo de leitura: 12 minutos
    10/12/2025
    Foto de um calendário
    FundamentosBibliotecas
    Foto do Leandro Hirt

    Datas e Horas no Python com datetime

    Aprenda a trabalhar com datas e horas no Python usando o módulo datetime. Guia completo com exemplos práticos de formatação,

    Ler mais

    Tempo de leitura: 13 minutos
    10/12/2025