Сьогодні у цій статті ми дізнаємося як отримати інформацію про свою систему та комп’ютер за допомогою модуля platform
у Python
. Модуль platfrom дозволяє отримувати різного роду інформацію про ОС та комп’ютер користувача. Також треба зазначити той факт, що platform
— це вбудований Python
модуль, тобто його треба просто імпортувати без попередньго встановлення.
Архітектура ОС
Отже, переходимо до розгляду функціоналу цього модуля. Першою ми розглянемо функцію architecture()
, яка визначає архітектуру вашої системи (64-біт або 32-біт) та тип середовища, у якому запускається наш код.
Ось застосування функції:
import platform
print(platform.architecture())
('64bit', 'WindowsPE')
На виході отримуємо кортеж з описаними вище двома значеннями.
Інформація про процесор
Наступною на огляді у нас буде функція machine()
, яка надає можливість отримати дані про те, який процесор стоїть на даному комп’ютері.
Ось як це виглядає:
print(platform.machine())
AMD64
Мережеве ім’я
Далі подивимося на node()
— функцію, завдяки якій можна визначити мережеве ім’я комп’ютера. Ось таким чином вона працює:
print(platform.node())
DESKTOP-HL7DJDG
Мережеве ім’я існує для того, щоб до нього могли звератися для різного роду маніпуляцій з ним.
Загальна інформація про ОС
Наступним предметом нашої цікавості буде функція platform()
. Щодо її прзначення, то вона виводить дані про ОС, її версію та збірку — загальну інформацію про ОС.
Працює дана функція таким чином:
print(platform.platform())
Windows-10-10.0.19045-SP0
Більш детальна інформація про процесор
Щоб отримати більш детальну інформацію процесора за допомогою platform
, треба використати функцію processor()
. Також важливо відмітити той факт, що processor()
дає змогу отримати більш детальні дані про процесор, у той час як функція machine()
повертає неповну назву з архітектурою системи того самого процесора. Після того, як ми розібралися у суті цієї функції, ми можемо поглянути на неї у дії:
print(platform.processor())
AMD64 Family 23 Model 17 Stepping 0, AuthenticAMD
І так як ми дещо порівнювали processor()
та machine()
, то, думаю було б добре вказати поряд приклад з machine()
:
print(f"processor(): {platform.processor()}\n"
f"machine(): {platform.machine()}")
processor(): AMD64 Family 23 Model 17 Stepping 0, AuthenticAMD
machine(): AMD64
Загальна інформація про прилад
Функція uname()
просто об’єднує усі дані, котрі ми отримали раніше за допомогою функцій system()
, node()
, release()
, version()
та machine()
. Дивимося на неї:
print(platform.uname())
uname_result(system='Windows', node='DESKTOP-HL7DJDG', release='10', version='10.0.19045', machine='AMD64')
Збірка інтерпретатора
Функція python_build()
призначена для отримання даних щодо збірки інтерпретатора мови Python
. Якщо казати більш конкретно, то вона надає дані про номер збірки та дату й час збірки.
Приклад:
print(platform.python_build())
('tags/v3.9.13:6de2ca5', 'May 17 2022 16:36:42')
У результаті отримали 'tags/v3.9.13:6de2ca5'
— номер збірки, 'May 17 2022 16:36:42'
— дата й час.
Гілка або тег з якого була зібрана версія Python
Функція python_branch()
дозволяє дізнатися з якої гілки або тегу у репозиторії Cpython
зібрана ваша версія мови Python
. Щодо пояснення, то код мови Python
є доступним у репозиторії і у цього репозиторія є свої гілки та теги.
Cpython — це інтепретатор для мови Python, написаний на мові C, який потрібен для того, щоб виконувати код написаний на мові Python. Інтерпретатор по своїй суті просто перетворює вихідний код на так званий байт-код — це проміжний етап між вихідним та машинним кодом. Потім вже без допомоги інтерпретатора цей байт-код перетворюється на машинний, який виконує процесор і таким чином програма виконується.
Гілки — це місця, у яких ведуться різного роду роботи над кодом. Тобто, наприклад, на одній гілці може вестися розробка нової версії, а на інших — підтримка вже існуючих.
Теги — це такий знак, що програма вже отримала офіційний реліз. У такому випадку цим знаком позначають конкретну версію коду цієї програми. Тобто, мається на увазі, що ця версія коду — це фінальний код програми.
Задля простоти можна навести цікаву аналогію, щоб зрозуміти суть гілок та тегів. Уявіть, що ви у фруктовому саду збираєте фрукти. Сам сад має доріжку по центру і по сторонам, також рядки з фруктовими деревцями різних сортів справа та зліва. Тобто кожен рядок з якої-небудь сторони — це якийсь інший фрукт.
У такому разі гілками у нас будуть називатися рядки з фруктовими деревцями, адже як і у гілок в репозиторії на кожному рядку росте свій фрукт, тобто на кожному з рядків відбуваються різні процеси. Наприклад, на першому рядку ростуть яблуки, на другому груші, на третьому ще якісь.
Тегами у нашій аналогії будуть називатися фрукти, які через доспіваання ми зібрали у кошик. Тобто ми побачили, що вони доспіли — це знак, що їх вже пора збирати.
Ось тепер вже можна подивитися приклад функції у коді:
print(platform.python_branch())
tags/v3.9.13
Отже функція показала, що моя версія мови Python
— це офіційна версія мови, яка була зібрана з тегу.
Реалізація мови Python
Завдяки функції python_implementation()
ми можемо дізнатися, який інтерпретарор мови Python використовується. Ось приклад:
print(platform.python_implementation())
CPython
Тобто у мене використовується інтепретатор Cpython
. До речі, він є найпоширенішим серед усіх інших інтерпретаторів мови Python
.
Дані про компілятор
Завдяки platform
також можна отримати дані про компілятор, який використовується — цим займається функція python_compiler()
. Компілятор — це конкретна програма, яка збирає інтерпретатор Cpython
.
Ось приклад цієї функції:
print(platform.python_compiler())
MSC v.1929 64 bit (AMD64)
Версія мови Python
Функція python_version()
просто дає визначити версію мови Python
. Приклад наведений нижче:
print(platform.python_version())
3.9.13
Тут же й розглянемо також функцію python_version_tuple()
, вона робить те саме, що й python_version()
тільки результат виводить у формі кортежу. Ось приклад:
print(platform.python_version_tuple())
('3', '9', '13')
Випуск та назва ОС
Можемо дізнатися випуск нашої ОС завдяки realease()
. Ось приклад цієї функції у коді:
print(platform.release())
10
Так само є функція system()
, яка дає дані конкретно про назву ОС. І знову ж таки, переходимо до прикладу:
print(platform.system())
Windows
Висновок
У цьому матеріалі ми розглянули як функціонал модуля platform, так і з’ясували значення деяких термінів. Сподіваюсь, що ця стаття сподобалася вам! Дякую за увагу!