【问题标题】:Python wont run with Task Scheduler but will run normally?Python 不会与任务计划程序一起运行,但会正常运行?
【发布时间】:2014-12-05 19:35:12
【问题描述】:

由于某种原因,这完全让我大吃一惊,我有一个 python 程序,当我让 Windows 任务计划程序运行它时它无法运行。我刚刚更新了程序,虽然以前每次都成功运行,但现在每次都失败。
真正奇怪的是,如果我独立于任务计划程序运行 python 脚本,它就可以正常工作!

所以旧程序和新程序的主要区别在于旧程序使用 urllib.request 和新程序在本地运行 open()、os.listdir 和 os.path.join 当我通过 Windows 任务计划程序运行程序时,计划程序上的结果显示“(0x1)”,并且 Windows CMD 窗口闪烁说:

Traceback <most recent call last>:
File “C:\Users\User\Documents\Python\Test\Client\Beige.py” , line 16 in (module)
For filename in os.listdir(‘Website_Check”):
FileNotFoundError: [WinError3]  the system cannot find the path specified:
“Website_Check”

所以基本上,当我直接运行程序时,它可以正常访问外部 .txt 文件,但从任务计划程序中却没有?我需要帮助。其他人有这方面的经验吗?

(我知道我可以将 txt 文件存储在同一个目录而不是子目录中,但我必须有另一个文件夹,另一个程序每天都在修改 txt 文件)

【问题讨论】:

  • 顺便说一句,我的代码很好,因为它在任务计划程序之外正常工作

标签: python windows file operating-system directory


【解决方案1】:

确保您在程序中使用绝对路径,而不是相对路径。任务计划程序可能正在从不同的目录运行您的程序,如果您的程序中有相对路径,则它无法找到它们。解决此问题的一种简单方法是将以下行放在程序的顶部(假设您已经导入了os):

os.chdir("c:/Users/User/Documents/Python/Test/Client")

现在,下面的所有命令都在这个目录下运行,相对路径应该可以工作了。

【讨论】:

  • Ahhhhh 你真聪明....我永远感激不尽:) 大声笑它总是最简单的解决方案让我完全忘记!
猜你喜欢
  • 2017-08-01
  • 2020-07-13
  • 1970-01-01
  • 2023-03-08
  • 1970-01-01
  • 2013-12-11
  • 1970-01-01
  • 2017-09-08
相关资源
最近更新 更多