Не существует единого кроссплатформенного способа напрямую получить доступ к времени выключения ПК из скрипта Python. Метод во многом зависит от вашей операционной системы. Вот несколько способов для Windows :
Самый надёжный способ в Windows — использовать утилиту командной строки Windows Management Instrumentation (WMIC) через модуль subprocess в Python. Это позволяет запрашивать журналы событий системы.
import subprocess
import datetime
def get_last_shutdown_time():
"""Retrieves the last shutdown time from Windows event logs."""
try:
cmd = ['wmic', 'computersystem', 'get', 'LastShutdownTime']
proc =
subprocess.run (cmd, capture_output=True, text=True, check=True)
output = proc.stdout
lines = output.splitlines()
#Find the line with the shutdown time (skip the header)
time_str = lines[1].strip()
if time_str: #Check if there's actually a time (it might be empty for a fresh boot)
#Convert from YYYYMMDDHHMMSS.MMMMMM+XXX to datetime object
time_str = time_str.replace('+000', '') #remove timezone info if present
time_obj = datetime.datetime.strptime(time_str, '%Y%m%d%H%M%S.%f')
return time_obj
else:
return None # Handle case where no shutdown time is found
except subprocess.CalledProcessError as e:
print(f"Error retrieving shutdown time: {e}")
return None
except ValueError as e:
print(f"Error parsing shutdown time: {e}")
return None
last_shutdown = get_last_shutdown_time()
if last_shutdown:
print(f"Last shutdown time: {last_shutdown}")
else:
print("Could not retrieve the last shutdown time.")