[PYTHON] 파이썬에서 컴퓨터가 배터리 전원으로 작동하는지 어떻게 감지 할 수 있습니까?
PYTHON파이썬에서 컴퓨터가 배터리 전원으로 작동하는지 어떻게 감지 할 수 있습니까?
나는 파이 게임 (pygame)으로 놀고 있는데, 컴퓨터에서 배터리 전원을 사용하면 CPU 사용량을 줄이고 배터리 수명을 연장하기 위해 초당 프레임 수를 줄이는 것이 좋습니다.
컴퓨터가 현재 배터리 전원을 사용하고 있는지 여부를 파이썬에서 어떻게 확인할 수 있습니까?
Windows에서 Python 3.1을 사용하고 있습니다.
해결법
-
==============================
1.win32api없이이 작업을 수행하려면 내장 된 ctypes 모듈을 사용할 수 있습니다. 나는 보통 win32api없이 CPython을 돌린다. 그래서 나는이 솔루션을 좋아한다.
win32api없이이 작업을 수행하려면 내장 된 ctypes 모듈을 사용할 수 있습니다. 나는 보통 win32api없이 CPython을 돌린다. 그래서 나는이 솔루션을 좋아한다.
그것은 당신이 SYSTEM_POWER_STATUS 구조체를 정의해야하기 때문에 GetSystemPowerStatus ()에 조금 더 많은 작업을하지만 나쁜 것은 아닙니다.
# Get power status of the system using ctypes to call GetSystemPowerStatus import ctypes from ctypes import wintypes class SYSTEM_POWER_STATUS(ctypes.Structure): _fields_ = [ ('ACLineStatus', wintypes.BYTE), ('BatteryFlag', wintypes.BYTE), ('BatteryLifePercent', wintypes.BYTE), ('Reserved1', wintypes.BYTE), ('BatteryLifeTime', wintypes.DWORD), ('BatteryFullLifeTime', wintypes.DWORD), ] SYSTEM_POWER_STATUS_P = ctypes.POINTER(SYSTEM_POWER_STATUS) GetSystemPowerStatus = ctypes.windll.kernel32.GetSystemPowerStatus GetSystemPowerStatus.argtypes = [SYSTEM_POWER_STATUS_P] GetSystemPowerStatus.restype = wintypes.BOOL status = SYSTEM_POWER_STATUS() if not GetSystemPowerStatus(ctypes.pointer(status)): raise ctypes.WinError() print 'ACLineStatus', status.ACLineStatus print 'BatteryFlag', status.BatteryFlag print 'BatteryLifePercent', status.BatteryLifePercent print 'BatteryLifeTime', status.BatteryLifeTime print 'BatteryFullLifeTime', status.BatteryFullLifeTime
내 시스템에서이 내용을 인쇄합니다 (기본적으로 "데스크탑, 플러그 인"을 의미 함).
ACLineStatus 1 BatteryFlag -128 BatteryLifePercent -1 BatteryLifeTime 4294967295 BatteryFullLifeTime 4294967295
-
==============================
2.쉽습니다. Win32api 모듈을 가져 와서 Python에서 Windows API 함수 GetSystemPowerStatus를 호출하면됩니다.
쉽습니다. Win32api 모듈을 가져 와서 Python에서 Windows API 함수 GetSystemPowerStatus를 호출하면됩니다.
편집 : GetSystemPowerStatus () 빌드 219 (2014-05-04)로 win32api 아직 구현되지 않습니다.
-
==============================
3.C에서이 정보를 검색하는 가장 신뢰할 수있는 방법은 GetSystemPowerStatus를 사용하는 것입니다. 배터리가 없으면 ACLineStatus는 128로 설정됩니다. psutil은이 정보를 Linux, Windows 및 FreeBSD에서 노출하므로 배터리가 있는지 확인할 수 있습니다
C에서이 정보를 검색하는 가장 신뢰할 수있는 방법은 GetSystemPowerStatus를 사용하는 것입니다. 배터리가 없으면 ACLineStatus는 128로 설정됩니다. psutil은이 정보를 Linux, Windows 및 FreeBSD에서 노출하므로 배터리가 있는지 확인할 수 있습니다
>>> import psutil >>> has_battery = psutil.sensors_battery() is not None
배터리가 있고 전원 케이블이 연결되어 있는지 여부를 알고 싶다면 다음을 수행하십시오.
>>> import psutil >>> psutil.sensors_battery() sbattery(percent=99, secsleft=20308, power_plugged=True) >>> psutil.sensors_battery().power_plugged True >>>
-
==============================
4.크로스 플랫폼 전원 상태 표시를위한 간단한 방법은 pip로 설치할 수있는 'power'모듈입니다
크로스 플랫폼 전원 상태 표시를위한 간단한 방법은 pip로 설치할 수있는 'power'모듈입니다
import power ans = power.PowerManagement().get_providing_power_source_type() if not ans: print "plugged into wall socket" else: print "on battery"
from https://stackoverflow.com/questions/6153860/in-python-how-can-i-detect-whether-the-computer-is-on-battery-power by cc-by-sa and MIT license
'PYTHON' 카테고리의 다른 글
[PYTHON] USB 장치 식별 (0) | 2018.11.19 |
---|---|
[PYTHON] 파이썬으로 페이스 북에 로그인하기 (0) | 2018.11.19 |
[PYTHON] 파이썬에서 디렉토리 내용을 어떻게 나열 할 수 있습니까? (0) | 2018.11.19 |
[PYTHON] 인쇄 기능이 없음을 반환하는 이유는 무엇입니까? (0) | 2018.11.19 |
[PYTHON] 추가 목록이지만 오류 'NoneType'개체에 'append'속성이 없습니다. (0) | 2018.11.19 |