Стандартний модуль бібліотечної платформи використовується для отримання інформації про операційну систему, на якій працює Python, та її версію (випуск). За допомогою цього модуля можна змінити процес для кожної ОС та версії.
Тут подається наступна інформація.
- Отримайте назву ОС:
platform.system()
- Отримати інформацію про версію (випуск):
platform.release()
,version()
- Отримайте операційну систему та версію відразу:
platform.platform()
- Приклади результатів для кожної ОС
- macOS
- Windows
- Ubuntu
- Зразок коду для перемикання обробки залежно від ОС
Якщо ви хочете дізнатися версію Python, яку ви використовуєте, перегляньте наступну статтю.
- Пов’язані статті:Перевірити та відобразити версію Python (наприклад, sys.version)
Весь зразковий код у першому півріччі працює на macOS Mojave 10.14.2; приклади результатів для Windows та Ubuntu показані у другій половині; Специфічні функції ОС також обговорюються у другій половині.
Отримайте назву ОС: platform.system ()
Назва ОС отримується за допомогою platform.system (). Повертається значення – це рядок.
import platform
print(platform.system())
# Darwin
Отримати інформацію про версію (випуск): platform.release (), version ()
Інформація про версію ОС (випуск) отримується з наступними функціями. В обох випадках повернене значення є рядком.
platform.release()
platform.version()
Як показано в наступному прикладі, platform.release () повертає простіший вміст.
print(platform.release())
# 18.2.0
print(platform.version())
# Darwin Kernel Version 18.2.0: Mon Nov 12 20:24:46 PST 2018; root:xnu-4903.231.4~2/RELEASE_X86_64
Отримайте операційну систему та версію одразу: platform.platform ()
Інформацію про назву ОС та версію (випуск) можна отримати разом за допомогою platform.platform (). Повертається значення – це рядок.
print(platform.platform())
# Darwin-18.2.0-x86_64-i386-64bit
Якщо значення аргументу лаконічне значення – TRUE, буде повернуто лише мінімальну інформацію.
print(platform.platform(terse=True))
# Darwin-18.2.0
Існує також аргумент з псевдонімом.
print(platform.platform(aliased=True))
# Darwin-18.2.0-x86_64-i386-64bit
Результат той самий у прикладі, але деякі операційні системи повернуть псевдонім як назву ОС.
Якщо псевдонім є істинним, він повертає результат, використовуючи псевдонім замість загальної назви системи. Наприклад, SunOS стає Solaris.
platform.platform() — Access to underlying platform’s identifying data — Python 3.10.0 Documentation
Приклади результатів для кожної ОС
Будуть показані приклади результатів для macOS, Windows та Ubuntu, а також специфічні функції ОС.
macOS
Приклад результату на macOS Mojave 10.14.2. Те саме, що показано вище.
print(platform.system())
# Darwin
print(platform.release())
# 18.2.0
print(platform.version())
# Darwin Kernel Version 18.2.0: Mon Nov 12 20:24:46 PST 2018; root:xnu-4903.231.4~2/RELEASE_X86_64
print(platform.platform())
# Darwin-18.2.0-x86_64-i386-64bit
Зауважте, що це Дарвін, а не macOS або Mojave.
Для отримання додаткової інформації про Дарвіна відвідайте сторінку Вікіпедії. Також є опис відповідності між номером останньої версії та іменем у macOS.
Існує функція, специфічна для madOS, яка називається platform.mac_ver ().
Повернене значення повертається як кортеж (випуск, версія про версію, машина).
У прикладі середовища versioninfo невідомий і являє собою порожній кортеж рядків.
print(platform.mac_ver())
# ('10.14.2', ('', '', ''), 'x86_64')
Windows
Приклад результатів у Windows 10 Home.
print(platform.system())
# Windows
print(platform.release())
# 10
print(platform.version())
# 10.0.17763
print(platform.platform())
# Windows-10-10.0.17763-SP0
Зауважте, що повернене значення 10 platform.release () – це рядок, а не ціле число.
Існує специфічна для Windows функція під назвою platform.win32_ver ().
Повертається значення повертається як кортеж (випуск, версія, csd, ptype).
csd вказує на стан пакета оновлень.
print(platform.win32_ver())
# ('10', '10.0.17763', 'SP0', 'Multiprocessor Free')
Ubuntu
Приклад результату на Ubuntu 18.04.1 LTS.
print(platform.system())
# Linux
print(platform.release())
# 4.15.0-42-generic
print(platform.version())
# #45-Ubuntu SMP Thu Nov 15 19:32:57 UTC 2018
print(platform.platform())
# Linux-4.15.0-44-generic-x86_64-with-Ubuntu-18.04-bionic
Існує функціональна платформа Unix. Linux_distribution ().
Повертається значення повертається як кортеж (distname, версія, id).
print(platform.linux_distribution())
# ('Ubuntu', '18.04', 'bionic')
Зауважте, що платформа.linux_distribution () була видалена у Python 3.8. Натомість рекомендується використовувати дистрибутив сторонньої бібліотеки, який потрібно встановити окремо за допомогою pip.
Зразок коду для перемикання обробки залежно від ОС
Якщо ви хочете змінити функцію або метод для використання залежно від ОС, ви можете скористатися таким методом, як platform.system (), щоб визначити значення.
Нижче наведено приклад отримання дати створення файлу.
def creation_date(path_to_file):
"""
Try to get the date that a file was created, falling back to when it was
last modified if that isn't possible.
See http://stackoverflow.com/a/39501288/1709587 for explanation.
"""
if platform.system() == 'Windows':
return os.path.getctime(path_to_file)
else:
stat = os.stat(path_to_file)
try:
return stat.st_birthtime
except AttributeError:
# We're probably on Linux. No easy way to get creation dates here,
# so we'll settle for when its content was last modified.
return stat.st_mtime
У цьому прикладі значення platform.system () спочатку використовується для визначення того, чи це Windows чи інше.
Потім він також використовує обробку винятків для перемикання процесу між випадком, коли існує атрибут st_birthtime, та іншими випадками.