2010-12-14 98 views
0

Je veux exécuter ma fonction et ensuite je veux trouver l'heure actuelle en utilisant python.comment trouver l'heure en utilisant python?

puis disons après 2 heures ma fonction devrait fonctionner à nouveau.

que devrais-je faire?

+1

"après 2 heures, ma fonction devrait fonctionner à nouveau"? Demandez-vous comment utiliser le 'cron' intégré ou' at'? Si oui, quel système d'exploitation utilisez-vous? –

Répondre

2

Il existe plusieurs façons de trouver le temps en Python:

import time 
print time.time() # unix timestamp, seconds from 1970 

import datetime 
print datetime.datetime.now() 

time.sleep(7200) # sleep for 2 hours 
0

Votre processus va courir pendant des heures à la fois et faire d'autres choses? Si vous ne pouvez donc marquer le temps comme si:

from time import time 

start_time = time() # current time expressed as seconds since 1/1/1970 

... 

now = time() 
if (now - start_time) >= (2 * 60 * 60): # number of seconds in 2 hours 
    do_function() 

Sinon, si elle n'a pas besoin de faire quoi que ce soit pendant 2 heures, vous pouvez faire:

from time import sleep 

quit_condition = False 

if not quit_condition: 
    sleep(2 * 60 * 60)  # control will not return to this thread for 2 hours 
    quit_condition = do_function() 

Dans le deuxième scénario, sans doute votre fonction indiquera si la boucle principale peut ou non être quittée.

2

pour déterminer l'heure, vous pouvez utiliser pythons datetime module

from datetime import datetime 
print datetime.datetime.now(); 

Pour exécuter le script toutes les deux heures - c'est un travail à crontab deamon. C'est un processus spécial dans les systèmes UNIX qui exécutent des commandes dans des périodes de temps.

Lisez à propos de la mise en place d'emplois Cron ici: http://blog.dreamhosters.com/kbase/index.cgi?area=2506

+2

Cela ne fonctionne pas. Soit 'import datetime' ou' print datetime.now() '. – Philipp

1
import datetime 
import time 

def func(): 
    # your function 
    pass 


while True: 
    func() # call you function 
    print datetime.datetime.now() # print current datetime 
    time.sleep(2*60*60) # sleep for 2 hours 

Cependant, une meilleure façon pour une opération planifiée serait d'utiliser cron, comme @Silver léger suggéré.