Python脚本的计时器函数

Python脚本的计时器函数,python,timer,Python,Timer,我对Python比较陌生,我正在尝试在我的脚本中设置一个计时器,让它每天在特定的时间运行,而不是使用Windows任务调度器 下面的脚本打开启用宏的excel电子表格并运行宏。我已经证实一切都按预期进行 #REFERENCE FILE PATH AND RUN MACROS# import os import win32com import win32com.client # path where macro enable sheet is if os.path.exists ("C:\\Us

我对Python比较陌生,我正在尝试在我的脚本中设置一个计时器,让它每天在特定的时间运行,而不是使用Windows任务调度器

下面的脚本打开启用宏的excel电子表格并运行宏。我已经证实一切都按预期进行

#REFERENCE FILE PATH AND RUN MACROS#
import os
import win32com
import win32com.client

# path where macro enable sheet is
if os.path.exists ("C:\\Users\\hernri01\\Documents\\Python Scripts\\SDK Cert 
Source\\Macro Autosave\\Macro_SDKtoXLSX.xlsm"):
    xl = win32com.client.Dispatch('Excel.Application')
    xl.Workbooks.Open(Filename = "C:\\Users\\hernri01\\Documents\\Python 
    Scripts\\SDK Cert Source\\Macro Autosave\\Macro_SDKtoXLSX.xlsm", 
    ReadOnly=1)

    # runs macro
    xl.Application.Run("openfilesandsave")
    del xl

#PRINT FINAL COMPLETED MESSAGE
print("Macro refresh completed!")
当我尝试添加计时器时,我收到一条错误消息。下面的脚本和错误:

#REFERENCE FILE PATH AND RUN MACROS#
import os
import win32com
import win32com.client
import datetime
from threading import Timer

xl = win32com.client.Dispatch('Excel.Application')
def run_prog():
    xl.Workbooks.Open(Filename = "C:\\Users\\hernri01\\Documents\\Python 
    Scripts\\SDK Cert Source\\Macro Autosave\\Macro_SDKtoXLSX.xlsm", 
    ReadOnly=1)
    xl.Application.Run("openfilesandsave")
    xl.Workbooks.Close()

    #PRINT FINAL COMPLETED MESSAGE#
    print("Macro refresh completed!")

    # how often python to run
    #t = Timer(3600 * 24,run_prog) #3600 = seconds in 1 hour
    t = Timer(10,run_prog) # 10 = run every 10 seconds
    t.start()

x=datetime.datetime.today()
#y=x.replace(day=x.day, hour=4, minute=0, second=0, microsecond=0)
y=x.replace(day=x.day, hour=11, minute=56, second=0, microsecond=0)
delta_t=y-x
secs=delta_t.seconds+1
print (secs)

t = Timer(secs, run_prog)
t.start()

print("Macro refresh completed!")
错误消息:

48
Macro refresh completed!
>>> Exception in thread Thread-1:
Traceback (most recent call last):
File "C:\Users\hernri01\AppData\Local\Programs\Python\Python37- 
32\lib\threading.py", line 917, in _bootstrap_inner
self.run()
File "C:\Users\hernri01\AppData\Local\Programs\Python\Python37- 
32\lib\threading.py", line 1158, in run
self.function(*self.args, **self.kwargs)
File "C:\Users\hernri01\Documents\Python Scripts\SDK Cert Source\Macro 
Autosave\openFileSave.py", line 14, in run_prog

谢谢你的帮助。

你为什么不睡86400秒呢?谢谢,我不知道这个功能。现在就开始研究。试图理解为什么任务调度程序不是一个选项?要执行上述操作,您必须让python.exe永久运行no?@RK1,出于某种原因,您需要在我的工作场所为任务调度器设置管理员权限。啊,我明白了,您可以尝试直接在cmd中设置任务吗?不确定这是否可行,但也可能有帮助。请参见第2点: