Python脚本的计时器函数
我对Python比较陌生,我正在尝试在我的脚本中设置一个计时器,让它每天在特定的时间运行,而不是使用Windows任务调度器 下面的脚本打开启用宏的excel电子表格并运行宏。我已经证实一切都按预期进行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
#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点: