Подтвердить что ты не робот

Как определить версию Mac OS с помощью Python?

Предполагается, что мое приложение работает в системе Mac OS X. Однако мне нужно выяснить, какая версия Mac OS (или Darwin) работает, желательно как число. Например,

  • "10.4.11" вернет либо 10.4, либо 8
  • "10.5.4" вернет 10.5 или 9
  • "10.6" вернет 10.6 или 10

Я узнал, что вы можете сделать это, что возвращает "8.11.0" в моей системе:

import os
os.system("uname -r")

Есть ли более чистый способ сделать это или, по крайней мере, способ вытащить первое число из результата? Спасибо!

4b9b3361

Ответ 1

>>> import platform
>>> platform.mac_ver()
('10.5.8', ('', '', ''), 'i386')

Как вы видите, первый элемент кортежа mac_ver возвращает строку, а не число (трудно сделать '10.5. 8 'в число! -), но довольно легко манипулировать строкой 10.x.y в виде нужных чисел. Например,

>>> v, _, _ = platform.mac_ver()
>>> v = float('.'.join(v.split('.')[:2]))
>>> print v
10.5

Если вы предпочитаете версию ядра Darwin, а не версию MacOSX, которая также легко доступна, используйте ту же форматированную строку, что и третий элемент кортежа, возвращенный platform.uname().

Ответ 2

Если вы уже используете os, вы можете использовать os.uname()

import os
os.uname()

Ответ 3

Вы можете проанализировать вывод команды/usr/bin/sw_vers.

Ответ 4

platform.mac_ver() вернет кортеж (release, versioninfo, машина

Итак, получите версию mac по коду

>>> platform.mac_ver()[0]

'10.8.4'

этот метод прост

Ответ 5

Если вы хотите запустить команду - как "uname" - и получить результаты в виде строки, используйте модуль subprocess.

import subprocess
output = subprocess.Popen(["uname", "-r"], stdout=subprocess.PIPE).communicate()[0]