Quer trabalhar e ganhar dinheiro com Python? Obtenha seu certificado
Deseja acessar todo nosso conteúdo em um PDF? Apostila de Python
Exercício: Ler e Escrever num arquivo
Nosso script vai funcionar assim:
Aparece um menu de opções (sair, ler ou escrever)
Se digitar ler, lê o conteúdo do arquivo
Se optar por escrever, escreve algo no arquivo
Isso em um looping indefinido, acaba quando o usuário quiser.
Primeiro de tudo, importamos o módulo os.path, isso vai ser necessário pois vamos usar a função isfile() para checar se o arquivo teste.exe existe
Se retornar false, é porque não existe, então cai dentro de um IF que vai criar esse arquivo (usando o modo de abertura de escrita w).
Agora que criamos, vamos abrir o arquivo no modo de leitura e escrita: r+
Arquivo aberto, perguntamos que opção ele deseja fazer.
Se for 0, op fica nulo e termina o laço WHILE.
Se for 1, o usuário quer ler o que tem no arquivo.
Para isto, basta usar a função read() dentro de um print.
Em seguida, fechamos o arquivo, já que terminamos de usar.
Se ele digitar 2, vai cair na opção de escrever.
Então pedimos um número, truncamos o arquivo (retiramos o que tem nele), escrevemos com o método write() e fechamos o arquivo!
E prontinho, é só isso, veja como ficou nosso código Python:
import os.path op=1 while op: if os.path.isfile("teste.txt") is False: print("Arquivo teste.txt nao existe. Criando...") meuArquivo = open("teste.txt", "w") meuArquivo = open("teste.txt", "r+") op=int(input("0. Sair \n" "1. Ler\n" "2. Escrever\n")) if op==1: print( meuArquivo.read() ) meuArquivo.close() if op==2: num = input("Numero:") meuArquivo.truncate() meuArquivo.write(num) meuArquivo.close() meuArquivo.close()
Exercício de Arquivos em Python
"Ao escrever compare o número que o usuário digitou com o número que está lá armazenado. Só escreva no arquivo se o usuário digitar um número MAIOR do que aquele que está lá".A única novidade, vai ser a variável num2, ela vai ler o que tem no arquivo, pelo método read().
Em seguida, vamos escrever no arquivo apenas em duas condições:
- Se o arquivo estiver vazio, ou seja, num2=''
- Se o número do usuário for maior que o armazenado: int(num) > int(num2)
Lembre-se de passar num e num2 para inteiro, pois em arquivos, elas são strings!
Se nenhuma dessas condições for atendida, nada escrevemos no arquivo e dizemos isso dentro de um print no ELSE.
Veja como ficou nosso código:
import os.path op=1 while op: if os.path.isfile("teste.txt") is False: print("Arquivo teste.txt nao existe. Criando...") meuArquivo = open("teste.txt", "w") meuArquivo = open("teste.txt", "r+") op=int(input("0. Sair \n" "1. Ler\n" "2. Escrever\n")) if op==1: print( meuArquivo.read() ) meuArquivo.close() if op==2: num = input("Numero:") num2 = meuArquivo.read() meuArquivo.seek(0) if (num2 is '') or (int(num)>int(num2)): meuArquivo.truncate() meuArquivo.write(num) meuArquivo.close() else: print(num," menor que ", num2) meuArquivo.close()
Exercício Proposto
No artigo Como criar um jogo em Python, fizemos um game onde o computador sorteia um número de 1 até 100 e você deve adivinhar.Implemente a função recorde nele.
Ou seja, num arquivo de no recorde.txt você deve armazenar o recorde do número mínimo de tentativas que alguém conseguiu acertar!
Fizemos essa implementação em nossa apostila de Python:
Apostila Python Progressivo
Nenhum comentário:
Postar um comentário