Простой способ сделать это - иметь постоянно работающий скрипт с циклом задержки. Например:
def doit():
print "doing useful things here"
if __name__ == "__main__":
while True:
doit()
time.sleep(3600) # 3600 seconds = 1 hour
Затем оставьте этот скрипт работающим, и он будет выполнять свою работу один раз в час.
Обратите внимание, что это только один подход к проблеме; использование службы, предоставляемой операционной системой, такой как планировщик задач, - это еще один способ избежать необходимости постоянно запускать скрипт.