通过Windows任务计划安排一个Python脚本(Scheduling a Python Scri

2019-09-18 04:31发布

遵守以下Python脚本,“Script.py”:

import subprocess
src_directory = 'Z:\z_7z\Some_Directory'
zip_file_name = 'Test.7z'
cmd = ['7z', 'a', zip_file_name, src_directory, '-mx9']
subprocess.Popen(cmd, stderr = subprocess.STDOUT, stdout = subprocess.PIPE)

我的目的是安排使用Windows任务计划程序的Python脚本。 我以前曾使用其他Python脚本成功地做到了这一点。 但是,我无法执行通过调度上面显示的脚本。 我不能确定这是否是Windows任务计划程序问题或Python的问题,但这里是我知道的:

“Script.py”,如上所示,是运行在一个“Some_Directory”目录中的7zip的压缩的脚本。 该脚本本身和它被调用7z.exe应用程序都存储在“Y:\ z_7z”目录。

该脚本似乎当手动执行工作正常。 对剧本我可以双击它会正确执行。 另外,我可以执行从通过下面的命令在命令行脚本:

Y:\z_7z\Script.py

目录和尝试以下操作:但是,我不能手动导航到“\ Python27 C”执行该脚本:

python Y:\z_7z\Script.py

这将产生以下错误:

Line 5 in module subprocess.Popen(cmd, stderr = subprocess.STDOUT, ...)
WindowsError: [Error 2] The system cannot find the file specified

提供的所有信息,我有真正的问题是,Windows任务计划程序不能执行这个脚本(上次运行结果=为0x1)。 我曾尝试过各种Windows任务调度配置,包括这似乎是理想的肚里如下之一:

  • 程序/脚本: “C:\ Python27 \ python.exe”
  • 添加参数(可选): “Y:\ z_7z \ Script.py”
  • 运行用户是否登录或不

再次,我已经安排其他Python脚本之前已成功运行。 这个Windows任务计划任务似乎是正确配置。 我通过一些更高级的设置,浏览并没有发现什么可疑的东西与这个特殊的任务。

Answer 1:

  1. 不要只推出7z 。 提供完整的可执行文件路径。

    CMD = [R'C:\ Program Files文件\ 7zip的\ 7z.exe”, 'A',zip_file_name,src_directory, '-mx9']会的工作,考虑到C:\Program Files\7zip\7z.exe是可执行文件路径。

  2. 尽量不要运行python用脚本作为参数的过程。 运行python脚本本身。

  3. zip_file_name是相对的。 我不知道该参数是一个文件名。 这可能是一个路径。 在这种情况下,.7z压缩文件可能上创建C:\Windows\System32 。 为了解决这个问题,设置zip_file_name是一个完整的路径。



文章来源: Scheduling a Python Script via Windows Task Scheduler