quinta-feira, 25 de maio de 2017

Coloca o óculos que vamos ler um texto (de um arquivo)

Olá amiguinhos! Boa vida!


Na aventura de hoje, vamos aprender a abrir um arquivo de texto.
Isso é muito útil para abrirmos arquivos .txt, .csv, .log ou qualquer outro tipo de arquivo onde haja texto puro (sem formatação).
Pois bem. Veja só👓:

Copie e cole a letra dessa linda canção abaixo para um bloco de notas e salve-a com o nome dbz.txt:

Posso pressentir o perigo e o caos
E ninguém agora vai me amedrontar
Com a minha mente vou a mil lugares
E a imaginação me dá forças para voar
Sonhos, desejamos alcançar
Ser alguém com o poder maior, que você ja tem

Liberdade é correr pelo céu
Sempre unidos, vamos triunfar
E se a nossa luta é pra valer
Vou mostrar meu valor
Dragon Ball Z, meu compromisso é sempre vencer!

Liberdade, nova era vai chegar, energia tenho para usar

E com alegria de viver, ninguém vai me deter
Dragon Ball Z, meu compromisso é sempre vencer!

Agora crie um script em python assim:

with open("dbz.txt","r") as arquivo:
    txt=arquivo.readlines()
print(txt)


Entendeu? Como não? hahahah

Vejam só:

with open("dbz.txt","r"as arquivo:
Aqui estou abrindo (open) o arquivo chamado dbz.txt; Caso o seu arquivo texto esteja em uma pasta diferente da que o seu script .py está (o que é muito provável) você precisaria passar o caminho todo, por exemplo: "c:/meus_textos/dbz.txt" (com as barras invertidas do padrão windows).
A opção r indica que iremos abrir o arquivo apenas para leitura (read). Também há as opções 'w' e 'a'. 'w' para escrever (write) em um arquivo e 'a' para adicionar (add) algo ao arquivo. Na primeira opção, caso o arquivo já exista, tudo que houver nele será apagado ou sobrescrito pelos novos dados inseridos. Na segunda opção o texto será adicionado ao final do texto existente, caso o arquivo já exista. 
Na parte:
as arquivo:
eu chamei de "arquivo" a instãncia do objeto de texto. Em outras palavras, eu guardei o texto em uma "variável mágica" chamada arquivo.
Essa "variável mágica" na verdade é um objeto. Esse objeto possui alguns métodos relacionados a ele. Nesse caso, usamos em txt=arquivo.readlines() o método readlines para guardar na variável txt as linhas lidas do arquivo. Esse método transforma cada linha do seu texto em um elemento de uma lista (lembra que já aprendemos sobre listas?).
Aí o print(txt) nos mostra o resultado a seguir:

['Posso pressentir o perigo e o caos\n', 'E ninguém agora vai me amedrontar\n', 'Com a minha mente vou a mil lugares\n', 'E a imaginação me dá forças para voar\n', 'Sonhos, desejamos alcançar\n', 'Ser alguém com o poder maior, que você ja tem\n', '\n', 'Liberdade é correr pelo céu\n', 'Sempre unidos, vamos triunfar\n', 'E se a nossa luta é pra valer\n', 'Vou mostrar meu valor\n', 'Dragon Ball Z, meu compromisso é sempre vencer!\n', '\n', 'Liberdade, nova era vai chegar, energia tenho para usar\n', '\n', 'E com alegria de viver, ninguém vai me deter\n', 'Dragon Ball Z, meu compromisso é sempre vencer!\n']

Legal, né? SQN
Tá meio feio de ver isso aí. Porém aqui você pode perceber que a lista foi criada (pra recordar, a lista é limitada pelos colchetes "[" e "]"

Agora, vamos tentar de novo, mas de uma forma mais bonitinha:

with open("dbz.txt","r"as arquivo:
    txt=arquivo.readlines()
for linha in txt:
    print(linha)

Execute esse código acima e me diga o que achou (aqui nos comentários mesmo).

Só pra entender, esse for percorreu cada elemento contido na lista txt e, a cada iteração, imprimiu o valor armazenado - que no caso foram as linhas da bela canção.

É isso aí galera! Gostaram da dica? Ficou alguma dúvida? Quer sugerir um novo post? Deixe aqui seu recadinho do coração que terei prazer em atendê-lo.