Abrir um ficheiro e ler o conteúdo de um ficheiro é uma das coisas comuns que faria ao fazer análise de dados.
Neste tutorial, veremos 3 exemplos de leitura de um ficheiro de texto em Python 3.
Uma maneira fácil de ler um ficheiro de texto e analisar cada linha é usar a declaração python “readlines” num objecto de ficheiro.
Como ler todas as linhas de um ficheiro de uma só vez? Use readlines()
Se quiser ler todas as linhas de um ficheiro ao mesmo tempo, a função readlines() de Python é para si. A função readlines() de Python lê tudo no ficheiro de texto e tem-nas numa lista de linhas. Aqui está um exemplo de como usar a função readlines() de Python.
Abrimos primeiro o ficheiro usando a função open() no modo somente leitura. E usamos o manipulador de ficheiros a partir da abertura do ficheiro para ler todas as linhas usando readlines() da seguinte forma.
# Open the file with read only permitf = open('my_text_file.txt', "r")# use readlines to read all lines in the file# The variable "lines" is a list containing all lines in the filelines = f.readlines()# close the file after reading the lines.f.close()
Podemos também ler todas as linhas de um ficheiro de uma só vez de outra forma. Basicamente, utilizaríamos o objecto que manipula o ficheiro após abrir o ficheiro como argumento para a função list() para obter todas as linhas como uma lista.
Outra forma de ler linhas de uma só vez é simplesmente usar
# read all lines at oncelines = list(f)
Nota que o último caractere de cada linha é caracter de nova linha.
Então pode passar por cima da lista de “linhas” para analisar cada linha. Como pode notar imediatamente, “readlines” ou “list(f)” funcionam bem para um pequeno ficheiro de texto. No entanto, não é eficiente em termos de memória se os seus ficheiros de texto forem realmente grandes. Uma maneira melhor de ler um ficheiro de texto que seja amigo da memória é ler o ficheiro linha a linha, ou seja uma linha de cada vez.
Core Python tem (pelo menos) duas maneiras de ler um ficheiro de texto linha a linha facilmente.
Como ler um ficheiro de texto linha a linha utilizando a instrução While em Python?
Aqui está a maneira de ler um ficheiro de texto uma linha de cada vez utilizando a instrução “While” e a função de linha de leitura de python. Uma vez que lemos uma linha de cada vez com readline, podemos facilmente manusear grandes ficheiros sem nos preocuparmos com problemas de memória.
# Open the file with read only permitf = open('my_text_file.txt')# use readline() to read the first line line = f.readline()# use the read line to read further.# If the file is not empty keep reading one line# at a time, till the file is emptywhile line: # in python 2+ # print line # in python 3 print is a builtin function, so print(line) # use realine() to read next line line = f.readline()f.close()
Uma outra variação da leitura de um ficheiro com instrução while e instrução readline é a seguinte. Aqui os testes de enquanto para booleano e leitura linha a linha até chegarmos ao fim do ficheiro e linha estarão vazios.
# file handle fhfh = open('my_text_file.txt')while True: # read line line = fh.readline() # in python 2, print line # in python 3 print(line) # check if line is not empty if not line: breakfh.close()
Como ler um ficheiro de texto linha a linha Usando um iterador em Python?
Também se pode usar um iterador para ler um ficheiro de texto uma linha de cada vez. Eis como fazê-lo.
fh = open('my_text_file.txt')for line in fh: # in python 2 # print line # in python 3 print(line)fh.close()
Remembrar de fechar o manipulador de ficheiros (“fh”) com a declaração “fh.close()” pode ser difícil inicialmente. Pode-se verificar se um manipulador de ficheiros é fechado com
# check if the file file handler is closed or not>fh.closed# true if the file handler is closed True
Pode-se abrir ficheiros de uma forma muito mais simples usando a declaração “com” em Python, sem ter de fechar o manipulador de ficheiros. O operador com cria um gestor de contexto e fechará automaticamente o ficheiro para si quando tiver terminado.
Verifica aqui para ver como utilizar a instrução “com” para abrir ficheiro.
- “com” instrução em Python para Abrir um ficheiro
Quer ler um ficheiro de texto linha a linha e saltar linhas de comentário? verifique este post
- 3 Maneiras de ler um ficheiro e saltar linhas de comentários iniciais em Python
Quer ler/carregar dados numéricos de ficheiro de texto, verifique este post
- Como ler um ficheiro/arquivo numérico em Python com numpy?
p> Tem dados num ficheiro de texto limitado em csv ou tabulação e quer lê-lo em Python? A melhor opção é utilizar o pacote Python’s pandas. Aqui está como carregar ficheiros de dados em python com Pandas,
- 7 Dicas para ler um ficheiro CSV como Quadro de Dados Pandas