Я пытаюсь получить статус заряда батареи моего ноутбука с помощью python, но сталкиваюсь с проблемой получения обновленного значения состояния батареи в реальном времени

#python #battery #psutil

#python #батарея #psutil

Вопрос:

Поэтому я пытаюсь получать оперативную информацию о состоянии заряда батареи, то есть подключен ли ноутбук к сети и заряжается ли он или работает от аккумулятора. Я использую библиотеку psutil в python для извлечения необходимых данных, но данные, которые я получаю обратно, ограничены однократным извлечением, то есть они не обновляются во время запуска программы.

 import psutil
import keyboard

battery = psutil.sensors_battery()

print("Starting Program...")

while True:
    status = battery.power_plugged
    print(status)
    if keyboard.is_pressed("q"):
        break
    elif(status == True):
        print("Charging...")
    elif(status == False):
        print("Discharging...")

print("Closing Program...")

 

Здесь я получаю либо только «true» и «Charging …», либо «false» и «Discharging …» независимо от изменения статуса. Итак, как я могу обойти это, любое предложение было бы полезно.

Ответ №1:

Вам необходимо получить обновленный статус while следующим образом:

 import psutil
import keyboard
import time

print("Starting Program...")

while True:
    battery = psutil.sensors_battery()
    status = battery.power_plugged
    print(status)
    if keyboard.is_pressed("q"):
        break
    elif(status == True):
        print("Charging...")
    elif(status == False):
        print("Discharging...")
    time.sleep(1)
print("Closing Program...")
 

Комментарии:

1. Потрясающе @BhaweshVerma, пожалуйста, подумайте о принятии ответа, чтобы отметить вопрос как решенный.

2. Конечно, я так и сделаю, мне нужно подождать около 10 минут, прежде чем я смогу принять ответ. Еще раз спасибо.