Solucionado (ver solução)
Solucionado
(ver solução)
4
respostas

COMO O PYTHON ENTENDE QUE A VARIAVEL "LINHA" É A LINHA DO ARQUIVO.TXT

No laço For é usada a variável "linha" para chamar as linhas do arquivo, mas não entendi como que o python sabe que ao escrever linha (em portugues) eu estou chamando as linhas do arquivo.

4 respostas
solução!

Olá, Fábio!

Isso não ocorre porque o nome da variável é linha. Qualquer outro nome de variável funcionaria.

É bastante similar ao que fazemos para fazer um loop nos itens de uma lista, por exemplo:

impares = [1, 3, 5, 7, 9]
for x in impares:
    print(x)

O que acontece no caso do arquivo aberto é que você percorre o arquivo aberto linha por linha, por exemplo:

arquivo = open("exemplo.txt", "r")
for x in arquivo:
  print(x)

Nesse caso, eu abri o arquivo através da variável arquivo e vou percorrer todas as linhas do mesmo no for. E, nesse caso, cada linha do arquivo aberto (exemplo.txt) será atribuída a variável x.

Acho que entendi a dúvida do colega, pois partilho dela:

Como o Python não sabe, por exemplo, se quero percorrer não "linha à linha", mas "caracter a caracter" ou "palavra à palavra"?

Olá, boa tarde

Acredito que seja algo intrínseco ao funcionamento do open. É como se o Python entendesse que o variador do for em um arquivo de texto será de linha em linha. E para acessar níveis mais internos, como caracter por caracter, é necessário fazer um for dentro de outro, como no exemplo a seguir, onde ele irá printar letra por letra de cada linha do arquivo palavras.txt. Como se estivesse "descascando" uma cebola.

Espero ter ajudado!

with open("palavras.txt","r") as arquivo:
    for linha in arquivo:
        for letra in linha:
            print(f"{letra}")

òtima explicação, Eliseu.

Agradeco o esclarecimento