【问题标题】:Windows scheduled task python read file when computer locked计算机锁定时Windows计划任务python读取文件
【发布时间】: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


【解决方案1】:

由于以下与任务配置方式相关的原因,脚本可能无法访问该文件:

  1. 该任务未配置为在没有用户登录的情况下运行 上。修复:任务属性 -> 常规 -> 安全选项,确保 选择“无论用户是否登录都运行”。还要确保 正确的用户正在运行任务。
  2. 任务可能在错误的目录中启动。修复:任务 属性->动作->双击您的动作->“开始于 (可选)”,放入正确的起始目录。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-06-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-06-06
    • 1970-01-01
    • 2010-09-22
    相关资源
    最近更新 更多