Comment faire pour exécuter le programme en Python pour toujours?

J'ai besoin d'exécuter mon programme Python pour toujours dans une boucle infinie..

Actuellement, je suis en cours d'exécution comme ça -

#!/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)

Est-il une meilleure façon de le faire? Ou dois-je encore besoin de time.sleep appel?
Toutes les pensées?

  • Que serait la bonne façon de le faire. Vous n'avez pas besoin de la time.sleep(5), aussi longtemps que vous avez un peu de code en retrait en dessous de la while True: ligne (il peut juste être pass au minimum)
  • Il est bon d'ajouter une condition d'arrêt -"arrêt du crochet", si vous voulez sortir, plutôt que de tuer le processus.
  • Mais si vous n'avez pas le temps de dormir, ou faire quelque chose qui dort pour un événement externe (comme d'écoute pour les connexions de données ou sur un socket) alors votre programme utilise 100% du CPU, alias busywait. Ce n'est pas poli 🙂
  • Python 3.5 pouvez utiliser asyncio et de lier des fonctions à des événements. Programme avec une interface graphique peut traiter avec ui-boucle d'événement ( par exemple gtk.main() )
  • Cela semble être un double de cette question: stackoverflow.com/questions/3226628/non-blocking-wait-in-python
InformationsquelleAutor | 2013-11-24