python - 计算机锁定时Windows计划任务python读取文件
问题描述
我对 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 问题,可能只是在工作站被锁定时使用任务调度程序的预期效果,但我希望有一个设置我可以更改以允许在工作站被锁定或其他情况下访问文件别的。
解决方案
由于以下与任务配置方式相关的原因,脚本可能无法访问该文件:
- 该任务未配置为在用户未登录的情况下运行。修复:任务属性 -> 常规 -> 安全选项,确保选中“无论用户是否登录都运行”。还要确保正确的用户正在运行该任务。
- 该任务可能在错误的目录中启动。修复:任务属性->操作->双击您的操作->“开始于(可选)”,放入正确的起始目录。
推荐阅读
- android - 在 Jetpack Compose 中单击时如何禁用涟漪效应
- reactjs - 在 Angular 8+ 中使用 React 组件的最佳方法?
- flutter - Flutter:ModalBottomSheet 与 ListView.separated() 大小到内容
- c# - 使用 LINQ Query 加入两个列表并仅显示相关数据
- grails - 更新用户配置文件时,无需用户输入即可将权限分配给用户
- spring-boot - 我是响应式编程的新手,尝试使用 Mono 和 concat 进行 UPSERT 操作,并在存储库中存在值
- html - CSS-Grid 中的网格
- javascript - React 刷新重定向到主页,与刷新页面的 url 相同
- typescript - Angular Test Simple Component -> NullInjectorError: No provider for xxx
- javascript - 在 Kotlin 的 WebView 的 JavascriptInterface 中执行页面的 JavaScript