【发布时间】:2016-06-03 22:21:56
【问题描述】:
我正在尝试设置一个自动执行的 python 代码。
我从一个要执行的小代码开始:
import datetime
with open("out.txt","a") as f:
f.write(datetime.datetime.now().isoformat())
任务将正常启动,并执行(文件已修改),但在任务调度程序中它永远不会结束。
this 和 this 存在于 SO 中,但没有真正的答案。这些线程中提出的唯一解决方法是在 Windows 中的给定时间后强制结束任务,但这需要知道 python 脚本需要多长时间,而我的实际任务并非如此。
任务调度器如何知道一个python脚本已经完成?
我在任务调度器中按以下方式运行它:
程序:cmd
参数:/c C:\python27\python.exe C:\path\of\script.py
执行于:C:\path\of\
我尝试了一些变体,比如执行 python 而不是 cmd,但它没有改变任何东西。我曾希望 /c 会强制关闭任务。
【问题讨论】:
-
我想知道如果你之后明确关闭文件是否会终止。
-
退出状态 0 代表任何任务的成功完成。尝试在最后添加sys.exit(0),退出前也要关闭文件指针。
-
感谢您的建议,我在代码中添加了
f.close()和sys.exit(0),但它并没有修改问题:当我从任务调度程序启动任务时,任务仍然保持为“正在运行”
标签: python windows scheduled-tasks