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']
['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