Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/294.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Windows任务调度器和python日志模块_Python_Windows_Logging_Scheduler - Fatal编程技术网

Windows任务调度器和python日志模块

Windows任务调度器和python日志模块,python,windows,logging,scheduler,Python,Windows,Logging,Scheduler,我有一个每天都在运行的程序。我想为每次运行创建一个日志。以下是负责日志记录的代码片段: logging.basicConfig(filename = 'log.txt', level = logging.DEBUG, format = '%(asctime)s - %(levelname)s - %(message)s') logging.debug('Start of program') # example logging 只要我通过.py文件或.bat文件启动它(在文件资源管理器中单击鼠

我有一个每天都在运行的程序。我想为每次运行创建一个日志。以下是负责日志记录的代码片段:

logging.basicConfig(filename = 'log.txt', level = logging.DEBUG, format = '%(asctime)s - %(levelname)s - %(message)s')

logging.debug('Start of program') # example logging
只要我通过.py文件或.bat文件启动它(在文件资源管理器中单击鼠标),一切都可以正常运行。不幸的是,当我把它放在时间表上时,程序运行得很好,但是没有创建日志文件

我尝试了多种调度程序设置,但问题似乎出在脚本的代码中


感谢您的反馈

我也想添加这个解决方案作为答案,因为这似乎是一个有点常见的问题,在过去给我带来了一些悲伤

当从Windows任务调度器执行某项任务时,该进程的工作目录默认不是可执行文件的路径,而是其他某个目录。例如,当调度程序操作调用
C:\sample.py
时,这不会在
C:\
中执行,而是在
C:\Windows\system32
中执行(在我的例子中)

您可以通过添加一个调度任务来验证这一点,该任务调用一个简单的Python/批处理脚本,该脚本将active working directory保存到某个文件中,例如

import os

with open("C:\\cwd.txt", "w") as fh:
    fh.write(os.getcwd())
还是这个

echo %cd% >> C:\cwd.txt
这会弄乱你的程序可能包含的任何相对路径,而且,我怀疑,它还有一些更微妙的问题,我还无法确定

可以通过显式设置操作的可选“开始位置”路径来避免问题:

执行脚本的用户是否拥有日志文件位置的权限?您是否为该操作指定了一个明确的“开始位置”文件夹?这是我过去在调度python脚本时遇到的两个问题。问题已解决:)非常感谢!在我指定了开始位置后,一切都进行得非常顺利!调度器的另一个想法。如果将Start in目录更改为类似“C:\Scripts\My\u Script”,请确保将参数从“C:\Scripts\My\u Script\python\u Script.py”更改为“python\u Script.py”。