我正在尝试设置一个自动执行的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 会强制任务关闭。
正如 Gaurav Pundir 提到的,添加
sys.exit(0)
应该正确结束脚本,从而结束任务。但是,您确实需要使用 import sys
添加 sys 库才能使用 sys.exit(0)
。希望这有帮助!
我遇到了同样的问题,python 文件没有在任务计划程序中停止。我导入了 sys 并编写了 sys.exit(0) 但我仍然遇到同样的问题。 最后,我决定按“更新”,这解决了我的问题;任务的状态是“就绪”,而不是“正在运行”。有关信息,我使用 Windows 11。
对我来说它看起来像一个错误。 尝试在任务管理器下查找 python 控制台。 如果不存在则程序已成功退出。
我在 Windows 10 上也有同样的问题,python 脚本运行成功,任务管理器下没有 python 控制台,但计划任务状态仍然显示“正在运行”
对于 CMD 作为中间启动器的此类问题似乎没有正确的解决方案。 任务计划程序 GUI 中有一个 [End] 命令,单击它将始终终止 CMD/批处理文件,将生成的 python.exe 进程留给稻草。
真正的问题:cmd 似乎没有任何方法将终止信号传递给 python.exe.. 并且任务引擎也无法可靠地确定 python.exe 是否还活着。
我有一个类似(相同?)的问题,任务计划程序状态表明我的 python 程序在终止后仍在运行。
就我而言,结果是 Windows 问题。更新状态好像失败了。
简单的修复方法是完全退出任务计划程序。
重新进入时,任务计划程序状态显示为“就绪”。