Инфо о системе ПК на Python

Python предоставляет несколько библиотек, которые позволяют получать подробную информацию о системе ПК. В этой статье мы рассмотрим, как использовать Python для извлечения информации о различных компонентах компьютера, таких как процессор, оперативная память, диски и другие.

Установка необходимых библиотек

Для работы с системной информацией в Python используются библиотеки psutil и platform. Для установки этих библиотек выполните следующие команды:

pip install psutil platform screeninfo

Получение информации о системе

Для получения информации о процессоре можно использовать библиотеку psutil. Пример кода:
import platform, psutil, socket, uuid, re, wmi
from screeninfo import get_monitors

def humanSize(_bytes):
    suffixes = ['Б', 'КБ', 'МБ', 'ГБ', 'ТБ', 'ПБ']
    i = 0
    while _bytes >= 1024 and i < len(suffixes)-1:
        _bytes /= 1024.
        i += 1
    f = ('%.2f' % _bytes).rstrip('0').rstrip('.')
    return '%s %s' % (f, suffixes[i])

# OS
print('-'*15, 'ОС', '-'*15)
os = platform.uname()
host = socket.gethostname()
print(f'ОС: {os.system} {os.release} ({os.version})')
print(f'Архитектура: {os.machine}')

# Network
print('-'*15, 'Сеть', '-'*15)
print(f'Имя устройства: {host}')
print(f'IP-адрес: {socket.gethostbyname(host)}')
mac = ':'.join(re.findall('..', '%012x' % uuid.getnode()))
print(f'MAC-адрес: {mac}')

# CPU
print('-'*15, 'ЦПУ', '-'*15)

computer = wmi.WMI()
proc_info = computer.Win32_Processor()[0]
gpu_info = computer.Win32_VideoController()[0]

cpu_cores = psutil.cpu_count(logical=False)
cpu_threads = psutil.cpu_count(logical=True)

print(f"ЦПУ: {format(proc_info.Name)}")
print(f"Ядра процессора: {cpu_cores}")
print(f"Потоки процессора: {cpu_threads}")

# CPU frequencies
print('-'*15, 'ЦПУ частоты', '-'*15)
cpufreq = psutil.cpu_freq()
print(f"Макс. частота: {cpufreq.max:.2f} Mhz")
print(f"Мин. частота: {cpufreq.min:.2f} Mhz")
print(f"Текущая частота: {cpufreq.current:.2f} Mhz")

# CPU usage
print('-'*15, 'ЦПУ использование', '-'*15)
for i, percentage in enumerate(psutil.cpu_percent(percpu=True, interval=1)):
    print(f"Core {i + 1}: {percentage}%")
print(f"Общая загрузка ЦПУ: {psutil.cpu_percent()}%")

print('-'*15, 'Видеокарта', '-'*15)
print('Видеокарта: {0}'.format(gpu_info.Name))

# Ram
print('-'*15, 'ОЗУ', '-'*15)
memory = psutil.virtual_memory()
print(f"Объем: {humanSize(memory.total)}")
print(f"Доступно: {humanSize(memory.available)}")
print(f"Используется: {humanSize(memory.used)}")
print(f"Процент: {memory.percent}%")

# SWAP
print("-"*15, "SWAP", "-"*15)
swap = psutil.swap_memory()
print(f"Объем: {humanSize(swap.total)}")
print(f"Доступно: {humanSize(swap.free)}")
print(f"Используется: {humanSize(swap.used)}")
print(f"Процент: {swap.percent}%")

# Disk
print('-'*15, 'Disk', '-'*15)
disk_partitions = psutil.disk_partitions()
for partition in disk_partitions:
    print(f"Диск: {partition.device}")
    disk = psutil.disk_usage(partition.mountpoint)
    print(f"    Файловая система: {partition.fstype}")
    print(f"    Объем: {humanSize(disk.total)}")
    print(f"    Используется: {humanSize(disk.used)}")
    print(f"    Доступно: {humanSize(disk.free)}")
    print(f"    Процент: {disk.percent}%")

# Monitor
print('-'*15, 'Monitor', '-'*15)
for monitor in get_monitors():
    print(f"{monitor.name.strip('\\.')}: {monitor.width}x{monitor.height}")

Заключение

Используя Python и такие библиотеки, как psutil и platform, можно легко получить подробную информацию о системе ПК. Эти инструменты полезны для мониторинга состояния системы, создания отчетов и диагностики проблем.
Поделится:
*текст* - жирный, ~текст~ - курсивный, -текст- - зачеркнутый, _текст_ - подчеркнутый
IP-адрес: 52.15.229.185
Часовой пояс: Asia/Almaty
Подробнее

Сервисы

Страницы

Информация