`with open ...`在Windows上的计划任务中不起作用

时间:2017-09-20 09:56:16

标签: python windows scheduled-tasks

我在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...在这种情况下不起作用?

1 个答案:

答案 0 :(得分:3)

当作为Windows任务运行时,该进程具有不同的工作目录。

在对open()的调用中使用绝对路径