windows中每日定时执行python脚本,解决问题

由于需要一个每天定时执行的任务,所以需要定时启动,网上看了很多方法,感觉不能在python脚本种写个while true 定时执行,占资源不说还不可靠。

最后考虑通过系统工具定时启动,发现linux中有crontab,windows中有定时任务程序。但我需要在window中执行,不过也可以在windows的wsl中测试一波。

Linux篇

crontab -e

添加如下命令,每分钟执行

* * * * * /usr/bin/python3 /home/lighthouse/python/get_cpu_usage.py

先用如下脚本测试

python 复制代码
import psutil
import datetime
import os

def get_cpu_usage():
    # 获取CPU的总使用率,interval参数设置为1,表示计算过去1秒内的平均CPU使用率
    usage = psutil.cpu_percent(interval=1)
    return usage

def write_to_file(cpu_usage):
    # 获取当前时间
    current_time = datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S')
    # 写入到文件,如果文件不存在则创建
    current_file_path = os.path.abspath(__file__)
    current_directory = os.path.dirname(current_file_path)
    write_file_path = os.path.join(current_directory, "cpu_usage_log.txt")
    with open(write_file_path, 'a') as file:
        file.write(f"{current_time} - CPU Usage: {cpu_usage}%\n")

if __name__ == "__main__":
    # 获取CPU占用率
    cpu_usage = get_cpu_usage()
    # 写入到文件
    write_to_file(cpu_usage)

执行结果的一段如下:

2024-05-28 11:55:03 - CPU Usage: 2.5%

2024-05-28 11:56:02 - CPU Usage: 2.4%

2024-05-28 11:57:02 - CPU Usage: 9.7%

2024-05-28 11:58:02 - CPU Usage: 2.3%

2024-05-28 11:59:02 - CPU Usage: 2.6%

2024-05-28 12:00:02 - CPU Usage: 5.7%

2024-05-28 12:01:02 - CPU Usage: 2.6%
2024-05-28 13:59:56 - CPU Usage: 13.4%

2024-05-28 14:00:05 - CPU Usage: 6.4%

2024-05-28 14:01:01 - CPU Usage: 7.4%

上面标蓝是我中午吃饭电脑休眠的结果,任务直接停止了,这要是我电脑休眠了任务岂不是错过了,感觉还是得windows的系统级程序才可以。

windows篇

我参考了以下文章

Windows下创建定时任务执行Python脚本的方法实现_python_脚本之家Python定时任务执行,本文主要介绍了Windows下创建定时任务执行Python脚本的方法实现,具有一定的参考价值,感兴趣的可以了解一下https://www.jb51.net/python/304144u28.htm

细节有上面文章介绍就不说了,说说问题

这里我不论填什么,绝对还是相对路径都报错

任务计划程序无法为用户" "启动"\Microsoft\get_cpu_usage_log"任务。其他数据: 错误值: 2147942402。

直到我把python和对于执行脚本路径写入一个.bat文件

python3 C:\Users\Documents\code\get_cpu_usage_task\get_cpu_usage.py

并把这个.bat的绝对文件路径填入上面的"程序或脚本"窗口,才执行正确

于是我又执行了另一个任务,也和上面结果一样,但最后居然没有log,找了很久没找到原因,因为没有任何报错信息,最后才发现不能勾选"不管用户是否登录都要运行"。

我勾选的本意是最大限度保持任务运行,结果windows的 任务计划程序太烂,不知道发生了什么,只能勾选"只在用户登录时运行"

相关推荐
猪八宅百炼成仙38 分钟前
让 AI 帮你清理电脑而不翻车:一个 Windows 体检调优 Skill 的工程化设计
人工智能·windows
卡提西亚1 小时前
FastAPI基础入门
python·fastapi
fanruitian2 小时前
python 机器学习 ML LinearRegression KNN KMeans
python·机器学习·kmeans
鱼宵2 小时前
取集合第一个元素,Java 为什么要写三种写法?
java·windows·python·java21
卷无止境2 小时前
给AI装上一双眼睛:快速构建代码验证器的思路与落地方案
后端·python
维克兜率天2 小时前
【维克】指数调整:哪些股票会被“强制买入“?
人工智能·python·算法
come112342 小时前
Codex 下不同场景 模式选择
python
kingx33 小时前
Windows Server 2008 应急加固实战:7 项入侵痕迹排查与修复
数据库·windows·提权·应急响应·加固
神也畏惧菠萝3 小时前
Day08 Python流程控制从入门到上瘾:if/match/while/for四件套,从B站登录一路打到猜数字游戏
python·算法·数据存储·for·while·if·ifelse
言乐63 小时前
通过 3D 动画直观演示球形瓶内可滑动半圆机构在倾倒时防粘盖、回正时刮膏体的运动学过程
python·3d·django·virtualenv·pygame