繁体   English   中英

Python 脚本在使用 Windows 调度程序时找不到文件

[英]Python script can't find file when using Windows Scheduler

我有一个批处理文件来执行 Python 并运行 Python 脚本,该脚本在手动运行时可以正常工作。 但是,当使用 Windows 任务计划程序运行时,Python 脚本给了我一个回溯,因为它找不到与 ZA7F5F35426B927411FC9231B56382 位于同一文件中的 .TXT 文件。

“批处理文件手动工作但不能使用任务计划程序”问题有多种形式。 我认为我的问题可能与我的 Python 脚本位于虚拟环境中有关。 它也可能与 Windows 用户帐户和权限有关。 过去有关任务计划程序的帖子已通过更改与用户帐户相关的设置得到解决,但到目前为止这对我没有用。

有关 Windows 任务计划程序设置的更多详细信息:

以下是我为任务选择的设置:

在此处输入图像描述

当我使用“仅在用户登录时运行”选项时,我的任务最接近工作。如果我选择“无论用户是否登录都运行”,该任务会打开一个命令提示符,但似乎没有执行任何操作。

有关批处理文件的更多详细信息

我的批处理文件如下所示:

"C:\Users\MyPathtovirtualenvironment\virtualenv\Scripts\python.exe" "C:\Users\fried\Desktop\calendaralert\court_calendar_alert1.3_automatic.py" 
pause

当手动运行时,它会做它应该做的事情:它从虚拟环境中执行 Python,然后加载 Python 脚本,该脚本正常运行,除非它从 ZAEA23489CE3AAA9B43006EBB28ECD 运行。

有关 Python 脚本的更多详细信息

Python 脚本在命令提示符下和作为批处理文件单独运行时工作正常,所以我认为它没有任何直接错误。 这是导致回溯的脚本部分。

with open('replacements.txt') as f:
    replacements = dict(x.rstrip().split("!") for x in f)

replacements.txt 文件与我的 Python 程序位于同一文件夹中。 我还尝试将文件的副本放在虚拟环境文件夹和 /scripts 子文件夹中,但没有成功。

刚刚在 windows ec2 实例上运行 python 脚本时遇到了这个问题。 通过在顶部添加以下内容,问题得到了解决:

import os
path = "your-directory-path"
os.chdir(path)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM