使用 Windows 调度程序调度Python脚本
在本文中,我们将使用 Windows 任务调度程序来调度Python脚本,即让它在某个时间或某个时间段后自动启动。
在开始之前,我们需要了解以下几点:
- Python脚本:它是一堆Python代码,旨在由用户从命令行直接执行。其中大部分是自动化脚本,旨在自动化某些任务。这些通常包含几行代码。
- Windows 计划程序: Windows 任务计划程序是一个 Microsoft Windows 组件或程序,它使用户能够安排某些脚本或程序并在特定时间自动启动它们。它主要用于自动化某些任务,如每日计划、每月数据抓取等。
让我们用 Step-wise 来实现:
第一步:编写Python脚本
首先,我们将制作我们想要调度的Python脚本。如果您已经制作了脚本,请跳过本节。如果没有,您可以制作自己的Python脚本或跟随我的。
在这里,我们制作了一个Python脚本,它从我保存了其中几个的文件夹中获取随机励志名言图片并显示它。您将需要以下Python包/模块:tkinter、PIL、os、random。
Python3
# Python3 script to display
# random image quotes from a folder
# Importing modules
from tkinter import *
from PIL import ImageTk, Image
import os
import random
# Getting the file name of
# random selected image
name = random.choice(os.listdir(
"C:\\Users\\NEERAJ RANA\\Desktop\\quotes_folder\\"))
# Appending the rest of the path
# to the filename
file = "C:\\Users\\NEERAJ RANA\\Desktop\\quotes_folder\\" + name
# Displaying the image
root = Tk()
canvas = Canvas(root, width=1300, height=750)
canvas.pack()
img = ImageTk.PhotoImage(Image.open(file))
canvas.create_image(20, 20, anchor=NW, image=img)
root.mainloop()
请记住根据系统上的文件夹位置更改文件夹路径。
现在,有两种方法可以安排脚本。第一种方法涉及制作批处理文件,另一种不涉及。如果不想制作批处理文件,可以跳过步骤 3。
第 2 步(可选):制作批处理文件
批处理文件用于在命令提示符下执行命令。它包含一系列您通常在命令提示符中使用的纯文本命令,通常用于执行程序。
我们将制作一个批处理文件来运行我们的Python脚本。
- 首先,打开任何文本编辑器。
- 接下来,在一个空文件中输入以下几行:
"C:\Python38\python.exe" "C:\Users\NEERAJ RANA\Desktop\GFG_Articles\scheduler\quote.py"
pause
第一个字符串是您机器上Python可执行文件的路径,第二个字符串是您保存的Python脚本的路径。如果您不知道Python可执行文件的路径,请打开命令提示符并输入以下命令: where Python .
如果您看到多个路径,请使用其中任何一个。此外,根据您的系统更改保存的Python脚本的路径。 pause命令用于暂停批处理程序的处理,等待用户的输入。最后,使用.bat扩展名保存此文件。
第 3 步:调度脚本
- 打开任务计划程序应用程序。它应该是这样的:
- 单击右侧“操作”选项卡中的“创建基本任务...”。
- 在给定字段中为任务输入合适的名称和描述,然后单击下一步。
- 选择您希望任务执行的频率。您可以选择每天、每周、每月等,然后单击下一步。
- 选择您希望触发任务的开始日期和时间。此外,选择您希望任务重复/重复的天数,然后单击下一步。
- 在“您想执行什么任务?”中选择“启动程序”。然后点击下一步。
- 如果您在第 2 步中制作了批处理文件,只需在程序/脚本部分输入批处理文件的路径即可。如果您跳过了第 2 步,请在程序/脚本部分输入Python可执行文件的路径,并在“添加参数(可选)”部分输入Python脚本文件的路径。
- 如果您的脚本在某个文件夹中安装了一些依赖项,例如浏览器可执行文件,您可以在“开始于(可选)”部分中包含文件夹路径,然后单击下一步。
- 8:最后,检查所有输入的值并单击完成。
现在,在您选择的时间,您的脚本将执行。