我如何优化读取电池状态的 python 代码
How do i optimise my python code which reads Battery Staus
基本上我试图制作一个 Py 脚本,该脚本在后台运行以通知用户何时插入充电器以及何时断开连接
我面临的问题是性能,脚本使用更多 CPU 时间(可能是因为我使用了 while 循环)
告诉我是否有更好的方法来处理这种情况。
我已经尝试过使用睡眠时间,但没有用。
class Battery_code:
def __init__(self, c_var):
self.c_var = c_var
def mbox(self, title, text, style):
return Custom.windll.user32.MessageBoxW(0, text, title, style)
while 1:
battery = Reader.sensors_battery()
plugged = battery.power_plugged
percent = str(battery.percent)
if plugged is False and int(percent) in range(40, 80, 1) and c_var == 0:
speak.Speak("Charger is Disconnected Now")
c_var += 1
time.sleep(2)
if plugged is True and int(percent) in range(40, 80, 1) and c_var == 0:
speak.Speak("Charger is Connected Now")
c_var += 1
time.sleep(2)
if plugged is True and int(percent) > 80:
mbox('',
'Battery is at [' + percent + '%] and Still Plugged Please Unplug ', 0)
speak.Speak("Please Unplug the charger to increase battery life")
c_var = 0
if plugged is False and int(percent) < 40:
mbox('',
'Battery is at [' + percent + '%] Please Connect Charger ', 0)
speak.Speak("Please Connect charger to increase battery life")
c_var = 0
time.sleep(3)
使用 "battery.secsleft" 计算出用户还剩多少时间。
然后通过一些简单的数学运算,您可以计算出何时发出警报并在此之前休眠。
当然,这可能因使用情况而异,因此您可以暂时使用一些额外的填充。
此外,在以下情况下:
如果 plugged 为 True 且 int(percent) > 80:
和
如果插入为假且 int(percent) < 40:
你忘了使用睡眠。
基本上我试图制作一个 Py 脚本,该脚本在后台运行以通知用户何时插入充电器以及何时断开连接
我面临的问题是性能,脚本使用更多 CPU 时间(可能是因为我使用了 while 循环)
告诉我是否有更好的方法来处理这种情况。
我已经尝试过使用睡眠时间,但没有用。
class Battery_code:
def __init__(self, c_var):
self.c_var = c_var
def mbox(self, title, text, style):
return Custom.windll.user32.MessageBoxW(0, text, title, style)
while 1:
battery = Reader.sensors_battery()
plugged = battery.power_plugged
percent = str(battery.percent)
if plugged is False and int(percent) in range(40, 80, 1) and c_var == 0:
speak.Speak("Charger is Disconnected Now")
c_var += 1
time.sleep(2)
if plugged is True and int(percent) in range(40, 80, 1) and c_var == 0:
speak.Speak("Charger is Connected Now")
c_var += 1
time.sleep(2)
if plugged is True and int(percent) > 80:
mbox('',
'Battery is at [' + percent + '%] and Still Plugged Please Unplug ', 0)
speak.Speak("Please Unplug the charger to increase battery life")
c_var = 0
if plugged is False and int(percent) < 40:
mbox('',
'Battery is at [' + percent + '%] Please Connect Charger ', 0)
speak.Speak("Please Connect charger to increase battery life")
c_var = 0
time.sleep(3)
使用 "battery.secsleft" 计算出用户还剩多少时间。
然后通过一些简单的数学运算,您可以计算出何时发出警报并在此之前休眠。 当然,这可能因使用情况而异,因此您可以暂时使用一些额外的填充。
此外,在以下情况下: 如果 plugged 为 True 且 int(percent) > 80: 和 如果插入为假且 int(percent) < 40:
你忘了使用睡眠。