np.savetxt()在使用Windows任务计划程序时不保存文件



我有一个想每天运行的脚本,并找到了一篇关于如何使用Windows任务调度程序的非常有用的文章。按照教程的指示,我制作了一个.bat文件:

"C:Pythonpython.exe" "C:Pythonmee6APIDatamee6DataGetter.py"
pause

每当我运行这个文件时,生成的.csv文件都会被正确写入。但是,当调度程序运行相同的.bat文件时,没有写入任何文件。我确实收到了一个权限错误以及可能有帮助的回溯:

Traceback (most recent call last):
File "C:Pythonmee6APIDatamee6DataGetter.py", line 34, in <module>
loop.run_until_complete(job())
File "C:Pythonlibasynciobase_events.py", line 616, in run_until_complete
return future.result()
File "C:Pythonmee6APIDatamee6DataGetter.py", line 31, in job
await readData(1)
File "C:Pythonmee6APIDatamee6DataGetter.py", line 28, in readData
np.savetxt(date + '.csv', initArray, delimiter=', ', comments='', fmt='%s', encoding='utf8')
File "<__array_function__ internals>", line 5, in savetxt
File "C:Pythonlibsite-packagesnumpylibnpyio.py", line 1377, in savetxt
open(fname, 'wt').close()
PermissionError: [Errno 13] Permission denied: '03-22-2020.csv'

但是手动运行程序时没有权限错误。我确实发现有人问过类似的问题,但我也没有用这种方法。有什么东西我遗漏了吗?任务调度器是否需要以管理员身份运行.bat文件?感谢您的帮助!

编辑:

作为我错误的一个例子,以下代码(exampleCode.py,位于名为"mee6APIData"的文件夹中(在手动运行时可以正常工作:

import numpy as np
dataArray = ['user_ID', 'server_name', 'server_xp', 'date']
np.savetxt('example.csv', dataArray, delimiter=', ', comments='', fmt='%s', encoding='utf8')

以及相应的.bat文件:

"C:Pythonpython.exe" "C:Pythonmee6APIDataexampleCode.py"
pause

根据前面提到的教程,错误应该会显示出来,因为使用任务调度程序不会保存文件。

np.savetxt()应该将保存文件写入绝对路径,而不是工作目录:

np.savetxt('C:Pythonmee6APIDataexample.csv', dataArray, delimiter=', ', comments='', fmt='%s', encoding='utf8')

最新更新