How can I make a program automatically run once per day?

Billy Mays 81282ed9a88799d21e77957df2d84bd6514d9af6 at myhashismyemail.com
Wed Jul 27 08:58:57 EDT 2011


On 07/27/2011 08:35 AM, Chris Angelico wrote:
> On Wed, Jul 27, 2011 at 10:27 PM, Dave Angel<davea at ieee.org>  wrote:
>> As Chris pointed out, you probably aren't getting the script's directory
>> right.  After all, how can the scheduler guess where you put it?  The
>> obvious answer is to use a full path for the script's filename.  Another
>> alternative is to fill in the current directory in the appropriate field of
>> the scheduler's entry.
>
> I would prefer setting the current directory, as that allows the
> script to find any data files it needs, but either works.
>
>> I find it useful to only add batch files to the scheduler.  Those batch
>> files can do any setup and cleanup necessary.  In this case, the batch file
>> might simply set the current directory to the location of the script.
>
> And that is an excellent idea. Definitely recommended.
>
> ChrisA

If it hasn't been mentioned already:

import time

while True:
     t1 = time.time()

     #your code here

     t2 = time.time()
     time.sleep( 86400 - (t2 - t1) )



This doesn't take into account leap seconds, but it doesn't depend on a 
task scheduler.  It is also independent of the time your code takes to 
execute.

This is simpler, but it might drift slightly over time.

--
Bill



More information about the Python-list mailing list