Как определить версию 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")
Есть ли более чистый способ сделать это или, по крайней мере, способ вытащить первое число из результата? Спасибо!
Ответы
Ответ 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]