Ajude nosso projeto a se manter online, faça um PIX de qualquer valor: 029 278 923 85

Como Ler Linha por Linha em Arquivo em Python: readlines()

Neste tutorial de nosso Curso de Python, vamos te ensinar uma nova maneira de ler um arquivo de texto: linha por linha, usando o método readlines()

Caso deseje estudar offline, veja:
Caso deseje trabalhar e ganhar dinheiro como programador Python:

Ler Linha por Linha: Método readlines()


No tutorial anterior de nosso curso, falando como abrir e ler um arquivo em Python.
Para isso, usamos a função open() e o método read() do objeto do tipo File.

Porém, quando lemos usando o read(), ele pega todo o conteúdo do arquivo de texto, e coloca em apenas uma única string, tudo junto.

Porém, geralmente, não é isso que desejamos, e sim pegar 'pedaços' menores.
Por exemplo, crie o arquivo de texto com o nome dos funcionários de sua empresa:

Geddy Lee
Neil Peart
Alex Lifeson

Salve como funcionarios.txt e deixe na mesma pasta (diretório) do seu script Python.
Aprendemos que para abrir, ler e printar o conteúdo do arquivo, fazemos:

meuArquivo = open('funcionarios.txt')
nomes = meuArquivo.read()
print(nomes)

Ou seja, na variável nomes tem uma string gigante, com o nome dos três funcionários.
Existe um método, chamado readlines(), que também faz parte do objeto do tipo File.

Quando fazemos isso, ele lê o arquivo, porém ao invés de retornar uma string ele retorna uma LISTA DE STRINGS ! Ele vai pegar linha por linha, e cada linha vai ficar em uma posição da lista.

Veja como fica nosso código usando readlines():

meuArquivo = open('funcionarios.txt')
nomes = meuArquivo.readlines()
print(nomes)


O resultado do print, no shell, é:
['Geddy Lee\n', 'Neil Peart\n', 'Alex Lifeson\n']

Ou seja, uma lista, com três strings dentro!
Para a readlines() cada linha é uma string que termina no caractere '\n'.

Seu arquivo de texto pode ter 1 milhão de linhas.
Se usar a readlines(), ela vai criar uma lista de 1 milhão de elementos.




Exercício de Arquivos em Python

Copie toda a letra da música 2112, da banda Rush (melhor banda do universo):

E salve em um arquivo de texto letra.txt
Depois, crie um script de Python que exibe essa letra e o número de linhas dessa letra.

Nosso código Python ficou:

meuArquivo = open('letra.txt')

nomes = meuArquivo.readlines()

for nome in nomes:
    print(nome)

print("Número de linhas na letra: ", len(nomes))


Note que para saber o número de linhas, basta usarmos a função len() com o valor da lista dentro dessa função, ela vai retornar o número de strings na lista, que é o mesmo número de linhas da letra.

Aqui, deu que tem 144. Aí também?

Agora faça isso com a letra de sua música favorita.
Diga nos comentários qual sua música favorita e quantas linhas tem ela.

Lendo uma linha: readline()

Note que o comando está no plural: readlineS()

É possível ler apenas uma linha, uma única, com o comando readline()
Ele lê, pega tudo até o '\n' e pronto, devolve.

Se chamar de novo o método, ele vai ler a próxima linha, até o próximo '\n' e retornar essa string.

E assim vai. Você escolher, ler todas as linhas e colocar numa lista, ou ler uma por uma.
As vezes precisamos de uma coisa, as vezes precisamos de outra.

O importante é saber as possibilidades e poderes que temos, pra poder usar de maneira mais apropriada, quando for necessário.

Nenhum comentário:

Postar um comentário