Como Ler um Arquivo Linha por Linha e Armazenar em uma Lista em Python

Ana Maria Gomes
5 minutos de leitura

Conteúdos do tutorial

Ao trabalhar com arquivos em Python, uma tarefa comum é ler o conteúdo de um arquivo e armazenar cada linha como um elemento separado em uma lista. Isso pode ser útil para processar ou analisar dados de texto linha por linha. Neste post, exploraremos vários métodos para realizar essa tarefa de forma eficiente.

Lendo um Arquivo em uma Lista com Compreensão de Lista

Uma das maneiras mais simples e concisas de ler um arquivo linha por linha em uma lista é usando compreensão de lista. Este método lê o arquivo inteiro na memória e remove os caracteres de espaço em branco do final de cada linha:

with open('nome_do_arquivo') as arquivo:
    linhas = [linha.rstrip() for linha in arquivo]

Este trecho de código abre o arquivo e usa compreensão de lista para criar uma lista onde cada elemento é uma linha do arquivo, com espaços em branco finais removidos.

Lidando com Arquivos Grandes Linha por Linha

Se você está lidando com um arquivo grande, é mais eficiente em termos de memória processar o arquivo linha por linha em vez de lê-lo inteiro na memória de uma vez:

with open('nome_do_arquivo') as arquivo:
    for linha in arquivo:
        print(linha.rstrip())

Esta abordagem irá iterar sobre cada linha no arquivo, permitindo que você processe ou imprima cada linha sem carregar o arquivo inteiro na memória.

Usando o Operador Walrus no Python 3.8+

O Python 3.8 introduziu o operador walrus (:=), que pode ser usado para atribuir valores a variáveis como parte de uma expressão. Veja como você pode usá-lo para ler linhas de um arquivo:

with open('nome_do_arquivo') as arquivo:
    while linha := arquivo.readline():
        print(linha.rstrip())

Este código lerá e imprimirá cada linha do arquivo uma por uma até que não haja mais linhas para ler.

Definindo o Modo de Acesso e Codificação de Caracteres

Às vezes, você pode precisar especificar explicitamente o modo de acesso do arquivo e a codificação de caracteres:

with open('nome_do_arquivo', 'r', encoding='UTF-8') as arquivo:
    while linha := arquivo.readline():
        print(linha.rstrip())

Isso é particularmente importante ao trabalhar com arquivos que contêm caracteres especiais ou estão codificados em um formato diferente do padrão do seu sistema.

Lendo Linhas em uma Lista Sem Compreensão de Lista

Se você prefere uma abordagem mais explícita, pode ler linhas em uma lista usando um loop for:

with open("file.txt") as arquivo_entrada:
    linhas = []
    for linha in arquivo_entrada:
        linhas.append(linha)

Este método cria explicitamente uma lista vazia e anexa cada linha do arquivo à lista.

Criando uma Tupla de Linhas de um Arquivo

Alternativamente, você pode criar uma tupla de linhas de um arquivo:

linhas = tuple(open('nome_do_arquivo', 'r'))

Este código abre o arquivo e usa o construtor tuple para criar uma tupla onde cada elemento é uma linha do arquivo.

Resumo

Neste post, cobrimos vários métodos para ler um arquivo linha por linha e armazenar cada linha como um elemento em uma lista ou tupla em Python. Seja você alguém que trabalha com arquivos pequenos ou grandes, prefira código conciso ou explícito, ou precise lidar com codificações de caracteres especiais, existe um método que se adequa às suas necessidades. Lembre-se de usar compreensão de lista para uma solução rápida e fácil, processar arquivos grandes linha por linha para economizar memória e considere o operador walrus para uma abordagem moderna no Python 3.8 ou superior.

Inscreva-se gratuitamente e fique atualizado

Receba toda semana um resumo dos principais conteúdos da Asimov direto no seu e-mail. 100% livre de spam.

Áreas de interesse: