我有一个每天运行的程序。我想为每次运行创建一个日志。以下是负责记录的代码片段:
logging.basicConfig(filename = 'log.txt', level = logging.DEBUG, format = '%(asctime)s - %(levelname)s - %(message)s')
logging.debug('Start of program') # example logging
只要我通过.py文件或.bat文件(鼠标单击文件浏览器)启动它,一切都运行得很好。不幸的是,当我把它放在计划表上时,程序运行正常,但是日志文件没有被创建。
我尝试了多个调度程序设置,但问题似乎位于脚本代码中。
感谢您的反馈!
答案 0 :(得分:3)
我也希望将解决方案添加为答案,因为这似乎是一个常见的问题,这让我在过去感到悲伤。
从Windows任务计划程序执行某些操作时,该进程的工作目录默认情况下不是可执行文件的路径,而是其他目录。例如。当您的计划程序操作调用C:\sample.py
时,这不会在C:\
中执行,而是C:\Windows\system32
(在我的情况下)。
您可以通过添加一个调度简单的Python / Batch脚本的Scheduled Task来验证这一点,该脚本将活动的工作目录保存到某个文件,例如
import os
with open("C:\\cwd.txt", "w") as fh:
fh.write(os.getcwd())
或者
echo %cd% >> C:\cwd.txt
这与你的程序可能包含的任何相对路径混淆,我怀疑它有一些我未能确定的更微妙的问题。