Python不会与Task Scheduler一起运行但会正常运行?

时间:2014-10-10 15:17:09

标签: python windows file operating-system directory

由于某些原因,这完全打动了我的想法,我有一个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文件)

1 个答案:

答案 0 :(得分:1)

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

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

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