【发布时间】:2017-09-20 09:56:16
【问题描述】:
我在 Linux 上使用 Python,但我不得不在 Windows 上安排任务。我很难在这里自动化我的脚本。我发现 cron 的最佳替代方法是这个命令
schtasks /Create /SC MINUTE /TN TestTask_Python /TR "C:\Program Files (x86)\Python36-32\python.exe C:\Users\user_name\Desktop\test.py"
它每分钟运行一次脚本,而且它有点工作。 Documentation.
案例 1. 从 IDE 运行。 (PyCharm/Idle) 脚本有效。
案例 2. 从 cmd 运行。 > python test.py 脚本有效。
案例 3. 运行计划任务。该脚本部分工作。
Case3 打印not added 并完成,而Case1 和Case2 打印not added,将datetime 添加到test_time.txt 并打印added。
import time
import datetime
import json
from datetime import date
if __name__ == "__main__":
now = datetime.datetime.fromtimestamp(time.time()).strftime('%Y-%m-%d %H:%M:%S')
print('not added')
time.sleep(2)
with open('test_time.txt', 'a+') as pf:
pf.write('{0} \n'.format(now))
print('added')
time.sleep(1)
time.sleep(1)
我仔细检查了我的 enviro 变量,python PATH 与我放入 schtasks cmd 的路径匹配。
我错过了什么吗?为什么with open... 在这种情况下不起作用?
【问题讨论】:
-
可能您应该使用文件的完整路径
-
是的,你错过了一些东西。很可能工作目录或工作驱动器不是您所期望的,它试图在其他地方创建 test_time.txt。首先尝试绝对路径名或 os.chdir。
-
您可能会遇到无法创建文件的异常。按照建议,使用您绝对具有写入权限的位置的完整路径。作为测试,您可以尝试以管理员身份运行该过程,然后查看文件在 Windows 上的位置。
标签: python windows scheduled-tasks