You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Windows环境下Python psutil模块充电状态检测脚本输出不更新问题求助

解决充电状态告警系统输出不更新的问题

嗨,我来帮你捋捋这个问题~你现在遇到的核心问题是脚本只在启动时获取了一次电池状态,之后再也没有更新过,所以不管你插拔多少次充电器,输出都不会跟着变。

问题分析

先看你的代码:

import psutil
# 这行只在脚本启动时执行一次,battery里存的是当时的旧数据
battery = psutil.sensors_battery()
def test():
    to = battery.power_plugged
    if to:
        print("good")
    to = battery.power_plugged
    if not to:
        print("bad")
    to = battery.power_plugged
while True:
    test()

battery = psutil.sensors_battery()这行写在函数外面,只会运行一次。之后每次调用test(),都是在检查这个早就固定下来的battery.power_plugged值,自然没法反映你后续插拔充电器的变化。

修复方案

只需要把获取电池状态的代码移到test()函数内部,让每次调用函数时都重新读取最新的系统状态就行:

import psutil

def test():
    # 每次检查前都重新拉取最新的电池数据
    battery = psutil.sensors_battery()
    if battery.power_plugged:
        print("good")
    else:
        print("bad")

while True:
    test()

额外优化建议

上面的代码虽然能正常工作,但无限循环会疯狂占用CPU资源,建议加个延迟,比如每秒检查一次:

import psutil
import time

def test():
    battery = psutil.sensors_battery()
    # 可以把输出弄的更直观些
    status = "good(充电器已连接)" if battery.power_plugged else "bad(充电器未连接)"
    print(status)

while True:
    test()
    time.sleep(1)  # 间隔1秒检查一次,降低CPU占用

这样修改后,你插拔充电器的时候,脚本的输出就会实时更新啦~

内容的提问来源于stack exchange,提问作者eyyad

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.30 23:24:07