CodeGym /Curso Java /Python SELF PT /Lendo dados de um arquivo

Lendo dados de um arquivo

Python SELF PT
Nível 21 , Lição 1
Disponível

2.1 Lendo o arquivo inteiro

Em Python, há várias maneiras de ler arquivos de texto. Cada um desses métodos tem suas vantagens e é adequado para diferentes situações. As principais formas de ler arquivos de texto incluem: ler todo o conteúdo de uma vez, ler linha por linha, ler um número específico de caracteres e outras.

O método read() lê todo o conteúdo do arquivo em uma única string.


file = open('example.txt', 'r')
content = file.read()
print(content)
file.close()

Essa é uma maneira muito simples de ler um arquivo — uma chamada de método, e todo o conteúdo do arquivo está em uma string. No entanto, há desvantagens — se o arquivo contiver, por exemplo, 200 MB de logs, ele será lido lentamente e a memória do seu aplicativo será rapidamente consumida.

2.2 Lendo todas as linhas de um arquivo

Há uma alternativa ao método read() — o método readlines(). Ele também lê o arquivo inteiro na memória, mas o retorna como uma lista de strings — cada linha do arquivo será uma linha separada na lista.

O método readlines() lê todas as linhas do arquivo e as retorna como uma lista de strings.


file = open('example.txt', 'r')
lines = file.readlines()
for line in lines:
    print(line.strip())  # strip() remove espaços e caracteres de nova linha extras
file.close()

Essa abordagem pode ser conveniente se você souber de antemão que precisa processar o conteúdo do arquivo linha por linha. A desvantagem é que esse método pode consumir muita memória para arquivos muito grandes, já que todas as linhas são carregadas na memória.

2.3 Iterando sobre as linhas de um arquivo

O objeto file tem um iterador embutido, então você pode percorrer seu conteúdo usando um loop for. Isso permite ler o arquivo linha por linha, sem carregar o arquivo inteiro na memória.

Exemplo:


file = open('example.txt', 'r')
for line in file:
    print(line.strip())  
file.close()

Este método é mais eficiente em termos de memória para arquivos grandes, pois as linhas são lidas uma por uma. No entanto, pode ser mais complicado de processar se você precisar voltar para a linha anterior ou alterar a ordem de leitura.

Vamos comparar esse método e o anterior:

Uso do iterador Uso da função readlines()

file = open('example.txt', 'r')

for line in file:
    print(line.strip())  
                            
file.close()
                

file = open('example.txt', 'r')
            
lines = file.readlines()
for line in lines:
    print(line.strip())  
                        
file.close()
                

Esse método é mais simples e rápido. No entanto, quando você trabalha em projetos reais, às vezes será mais rápido carregar todos os dados na memória de uma vez e trabalhar com eles lá.

Os métodos readline() e readlines() são usados para ler linhas de um arquivo, mas funcionam de maneiras diferentes. readline() lê uma linha de cada vez, permitindo controlar o processo de leitura e não carregar todo o arquivo na memória. Isso é conveniente quando você precisa processar o arquivo linha por linha ou quando o arquivo é grande demais para ser carregado na memória por completo.

readlines(), por outro lado, lê todas as linhas do arquivo de uma vez e as retorna como uma lista. Este método é conveniente se você precisa obter rapidamente todas as linhas do arquivo para processamento posterior. No entanto, ele consome mais memória, especialmente para arquivos grandes, pois o arquivo inteiro é carregado na memória.

Dependendo da tarefa, readline() pode ser preferível se a economia de memória e o controle sobre o processo de leitura forem importantes, enquanto readlines() é útil quando você precisa obter imediatamente todas as linhas do arquivo para processamento.

2.4 Lendo parte de um arquivo

Se o arquivo é muito grande, você pode lê-lo em partes. No método read(n), você pode passar o parâmetro n — a quantidade de caracteres a ser lida. Se o arquivo tiver menos caracteres do que n, o método read() simplesmente lerá até o final do arquivo.

Exemplo:


file = open('example.txt', 'r')
content = file.read(10)  # Lê os primeiros 10 caracteres
print(content)
file.close()

Isso é útil para ler grandes arquivos em partes ou para processar blocos de dados fixos. No entanto, esse método ignora a divisão do arquivo em linhas — as linhas podem ser divididas no meio.

2.5 Lendo o arquivo linha por linha

Se por algum motivo você não quiser usar o iterador, pode ler o arquivo linha por linha manualmente. Para isso, o objeto file tem o método readline(). Não confunda com readlines().

O método readline() lê uma linha do arquivo de cada vez.

Exemplo:


file = open('example.txt', 'r')
line = file.readline()
while line:
    print(line.strip())
    line = file.readline()
file.close()

Neste exemplo, lemos o conteúdo do arquivo linha por linha, até que a linha lida seja vazia.

Comentários
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION