script programa otra lista funciones funcion ejemplos ejecutar desde dentro cómo consola archivos archivo python infinite-loop

otra - ¿Cómo ejecutar el programa Python para siempre?



funciones en python ejemplos (7)

Necesito ejecutar mi programa Python para siempre en un ciclo infinito.

Actualmente lo estoy ejecutando así -

#!/usr/bin/python import time # some python code that I want # to keep on running # Is this the right way to run the python program forever? # And do I even need this time.sleep call? while True: time.sleep(5)

¿Hay alguna forma mejor de hacerlo? ¿O incluso necesito time.sleep ? ¿ time.sleep llamada? ¿Alguna idea?


¿Que tal este?

import signal signal.pause()

Esto permitirá que su programa duerma hasta que reciba una señal de otro proceso (o de sí mismo, en otro hilo), haciéndole saber que es hora de hacer algo.


Aquí está la sintaxis completa,

#!/usr/bin/python3 import time def your_function(): print("Hello, World") while True: your_function() time.sleep(10) #make function to sleep for 10 seconds


Es una de las únicas formas en que puedo pensar. En cuanto a si es apropiado, depende del caso de uso: los servidores web y los bucles de eventos a veces lo hacen así. Y no, definitivamente no necesitas la llamada time.sleep.


Sí, puede usar un while True: bucle que nunca se rompe para ejecutar continuamente el código de Python.

Sin embargo, deberá colocar el código que desea ejecutar continuamente dentro del ciclo:

#!/usr/bin/python while True: # some python code that I want # to keep on running

Además, time.sleep se usa para suspender la operación de un script por un período de tiempo. Entonces, como quiere que el suyo se ejecute continuamente, no veo por qué lo usaría.


Tengo un pequeño script interruptableloop.py que ejecuta el código en un intervalo (por defecto 1seg), bombea un mensaje a la pantalla mientras se está ejecutando, y atrapa una señal de interrupción que puede enviarse con CTL-C:

#!/usr/bin/python3 from interruptableLoop import InterruptableLoop loop=InterruptableLoop(intervalSecs=1) # redundant argument while loop.ShouldContinue(): # some python code that I want # to keep on running pass

Cuando ejecuta el script y luego lo interrumpe, ve esta salida (los períodos se bombean en cada pasada del ciclo):

[py36]$ ./interruptexample.py CTL-C to stop (or $kill -s SIGINT pid) ......^C Exiting at 2018-07-28 14:58:40.359331

interruptableLoop.py :

""" Use to create a permanent loop that can be stopped ... ... from same terminal where process was started and is running in foreground: CTL-C ... from same user account but through a different terminal $ kill -2 <pid> or $ kill -s SIGINT <pid> """ import signal import time from datetime import datetime as dtt __all__=["InterruptableLoop",] class InterruptableLoop: def __init__(self,intervalSecs=1,printStatus=True): self.intervalSecs=intervalSecs self.shouldContinue=True self.printStatus=printStatus self.interrupted=False if self.printStatus: print ("CTL-C to stop/t(or $kill -s SIGINT pid)") signal.signal(signal.SIGINT, self._StopRunning) signal.signal(signal.SIGQUIT, self._Abort) signal.signal(signal.SIGTERM, self._Abort) def _StopRunning(self, signal, frame): self.shouldContinue = False def _Abort(self, signal, frame): raise def ShouldContinue(self): time.sleep(self.intervalSecs) if self.shouldContinue and self.printStatus: print( ".",end="",flush=True) elif not self.shouldContinue and self.printStatus: print ("Exiting at ",dtt.now()) return self.shouldContinue


dormir es una buena forma de evitar sobrecargas en la CPU

no estoy seguro de si es realmente inteligente, pero suelo usar

while(not sleep(5)): #code to execute

el método de suspensión siempre devuelve Ninguno.


para los SO que admiten select :

import select # your code select.select([], [], [])