Leia dados a partir de ficheiros

Concluído

Tip

Consulte a guia Texto e imagens para obter mais detalhes!

O Python dá-te várias formas de ler texto de um ficheiro. A melhor escolha depende do tamanho do ficheiro e do que queres fazer com ele.

Leia o ficheiro inteiro de uma vez

O .read() método devolve todo o ficheiro como uma única cadeia:

with open("notes.txt", "r") as file:
    contents = file.read()

print(contents)

Esta abordagem funciona bem para ficheiros pequenos, mas para ficheiros muito grandes carrega tudo na memória de uma vez.

Note

Se o ficheiro não existir, open() em modo de leitura levanta um FileNotFoundError. Certifique-se de que o ficheiro existe antes de tentar lê-lo!

Leia o ficheiro como uma lista de linhas

O .readlines() método devolve cada linha como uma cadeia separada numa lista. Cada cadeia mantém o carácter de nova linha (\n) no final.

with open("notes.txt", "r") as file:
    lines = file.readlines()

for line in lines:
    print(line.strip())   # .strip() removes the trailing newline

Leia uma linha de cada vez

A forma mais eficiente para a memória é iterar diretamente sobre o objeto do ficheiro. Python lê uma linha por ciclo:

with open("notes.txt", "r") as file:
    for line in file:
        print(line.strip())

Este padrão é recomendado para ficheiros grandes porque apenas uma linha é mantida na memória de cada vez.

Escolher a abordagem certa

Se você quiser... Utiliza...
Trabalhar com o ficheiro inteiro como uma única cadeia .read()
Obtenha uma lista de linhas às quais pode aceder por índice .readlines()
Processe cada linha uma de cada vez de forma eficiente for line in file