怎样在windows上定时执行python脚本

时间:2022-02-13 20:43:13

作为一个需要在电脑上工作和学习的人,一件十分困扰我的事情就是怎样不受互联网中其他内容的干扰而专注于自己想要做的事情,有的时候真的是沉浸于微博上的消息,忘了自己本来想要做的事。不过我有一件神器,自己爱豆的音频激励,所以决定写一个python脚本,让电脑每小时定时播放,提醒自己专注学习。

让python播放音频

python播放音频实际上很简单,使用pygame模块,只需要四五行的代码。

1 import pygame, time
2  
3 pygame.mixer.init()
4 track = pygame.mixer.music.load("E:\\Entertainment\\Audios\\by\\study.mp3")
5 pygame.mixer.music.play()
6 time.sleep(10)
7 pygame.mixer.music.stop()

注意这里要让进程sleep一段时间,因为我的音频本身只有7秒,所以这里睡眠10秒就足够了。

windows定时任务

这是windows自带的功能,自认为还是比较强大的。

请返回桌面,在我的电脑上右键选择管理(Manage) -> System Tools -> Task Scheduler,在右侧选择Create Basic Task

这时会弹出一个新的窗口:

  1. 输入任务名,下一步
  2. 之后会让你选择任务的执行周期,这里选在Daily,然后选择开始时间,Recur every这里填写1天,下一步
  3. 这里要选择任务执行的动作,这里为了执行python脚本,选择start a program,下一步
  4. 接下来就要选择执行的程序了,这里需要特别注意:
    1. Program/script: Browse...这里选择pythonw.exe这个程序(后面会说明为什么不选择python.exe)。因为我的电脑里同时安装了python2和python3,所以我的最终路径是这样的C:\Users\YJChan\AppData\Local\Programs\Python\Python36\pythonw.exe 
    2. Add arguments这里填写你的脚本路径:E:\Entertainment\Audios\by\autoplay.py
    3. Start in保持空白即可

任务创建完成,但是这时候还是每天执行一次,我们需要把它修改为每小时执行一次:

在Task Scheduler Library中找到你刚刚添加的任务,双击,在trigger选项卡中有一个Advancec settings,勾选Repeat task every 这里选择1 hour,后面的for duration of选择1 day,这样每小时播放就实现了

为什么要选择pythonw.exe

好奇的同学可以试一下选择python.exe,其实原因很简单,因为我这里想要在后台播放音频,而不是每次播放音频的时候都弹出一个命令行窗口。

这也是pyw和py文件的区别,pyw格式是用来开发纯图形化界面程序的,所以默认没有命令行窗口,这里很好的实现了我想要后台播放音频的想法。

试验一下

这时候任务其实已经建立完毕了,不过我很好奇它的实现效果。所以,仍旧是在Task Scheduler Library中,在新建的任务上右键,选择Run,成功,已经可以听到我想要的音频了。