【发布时间】:2018-06-20 02:48:33
【问题描述】:
我是 Python 3 的新手。我编写了一个脚本并使用 pyinstaller 将其转换为 EXE。该脚本尝试从与 EXE 位于同一目录中的名为 file.txt 的文本文件中读取。在工作站登录且未锁定时从任务计划程序运行 EXE 时,这工作得很好。但是,如果我尝试在用户登录并锁定工作站的情况下从任务计划程序运行 EXE,我会收到错误消息:
[Errno 2] No such file or directory: 'file.txt'.
这是我的python简化为当前错误(实际上只是将它放在一个新的python文件中并以相同的方式运行并得到相同的错误):
with open('file.txt', 'rb') as myfile:
readfile = myfile.read()
print(readfile)
我试图搜索这个问题,但我只能找到如何使用 python 锁定/解锁工作站或如何使用 python 锁定/解锁文件。
我相当肯定这不是 python 问题,可能只是在工作站被锁定时使用任务调度程序的预期效果,但我希望有一个设置可以更改,以允许在工作站被锁定时访问文件锁定或其他。
【问题讨论】:
-
在任务属性 -> 常规 -> 安全选项下,确保选中“无论用户是否登录都运行”。同样在安全选项中,确保正确的用户正在运行任务 - 它可能找不到文件,因为它无权访问它。
-
@Leo 我更改为“无论用户是否登录都运行”并仔细检查运行它的用户。我还检查了“以最高权限运行”。不幸的是,我仍然收到错误消息。
-
从任务计划程序手动运行任务时是否遇到相同的错误?如果是这样,您可能在错误的目录中启动了脚本,您可以从 Properties->Actions->双击您的操作->“Start in (optional)”进行更改。
-
@Leo 谢谢!就是这样。问题解决了。由于这是评论而不是答案,我不确定如何为您投票/标记为答案。这是我关于stackoverflow的第一个问题。如果你回答,我会标记它。
标签: python windows taskscheduler