Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

516
Visualizações
Guardar el progreso de un script de Python mediante el reinicio

Me gustaría comenzar diciendo que soy muy nuevo en Python y comencé este proyecto por diversión.

Específicamente, es simplemente un programa que te envía cumplidos como notificaciones periódicamente a lo largo del día. Esto no es para la escuela, y en realidad solo estaba tratando de hacerlo para mi novia mientras me presentaba a Python.

Con eso en mente, aquí está mi problema. Comencé este proyecto escribiendo la versión más simple: una que debe iniciar cada vez que se carga la computadora y se ejecuta mientras la usa activamente. Esta porción funciona perfectamente; sin embargo, parece que no puedo descifrar cómo hacer el siguiente paso: hacer que el programa continúe normalmente después de reiniciar y guardar su progreso.

Sé cómo hacer que se inicie de nuevo después de reiniciar. Aún así, no estoy seguro de cómo guardar su progreso. Particularmente, dado que estoy sacando los cumplidos de un archivo de texto, no estoy seguro de cómo hacer que el programa guarde en qué línea está antes de reiniciar. Esto es necesario porque no quiero que el programa comience desde el primer cumplido cada vez, ya que hay más de 300 únicos a partir de ahora.

Para ayudarlo a comprender dónde se encuentra actualmente mi código en cuanto al mejor consejo, lo muestro a continuación:

 import datetime import time from plyer import notification Compliment = None try: with open('C:/Users/conno/Documents/compliments.txt') as f: lines = f.readlines() except: print("I'm sorry, I can't give you a new compliment today because I can't find the file.") for compliment in lines: notification.notify( title = "Your New Compliment for {}".format(datetime.date.today()), message = compliment, app_icon = "C:/Users/conno/Downloads/Paomedia-Small-N-Flat-Bell.ico", timeout = 10 ) time.sleep(60*30)

Sé que podría tener fácilmente un conteo variable en qué línea está, pero ¿cómo guardo ese valor?

over 4 years ago · Santiago Trujillo
2 Respostas
Responde à pergunta

0

Simplemente puede guardar el conteo (que es el índice de la última línea de cumplido) como un número entero en un archivo pickle, o más fácil en un archivo de texto y leerlo cada vez que su secuencia de comandos se inicia después de reiniciar.

 import datetime import time from plyer import notification Compliment = None compliment_index = 0 try: with open('C:/Users/conno/Documents/compliments.txt') as f: lines = f.readlines() except: print("I'm sorry, I can't give you a new compliment today because I can't find the file.") try: with open('C:/Users/conno/Documents/compliments_counter.txt') as f: compliment_index = int(f.readlines()[0]) except: with open('C:/Users/conno/Documents/compliments_counter.txt', "w") as f: f.write(str(compliment_index)) for index in range(compliment_index, len(lines)): compliment = lines[index] notification.notify( title = "Your New Compliment for {}".format(datetime.date.today()), message = compliment, app_icon = "C:/Users/conno/Downloads/Paomedia-Small-N-Flat-Bell.ico", timeout = 10) with open('C:/Users/conno/Documents/compliments_counter.txt', "w") as f: f.write(str(index)) time.sleep(60*30)
over 4 years ago · Santiago Trujillo Relatório

0

Bueno, deberías guardar un índice en un archivo o algo así antes de que el programa se apague.

Mira esto: atexit — Controladores de salida

over 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda