如何使用Python检测Mac OS版本?

23 投票
5 回答
15691 浏览
提问于 2025-04-15 16:14

我的应用程序是运行在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")

有没有更简单的方法来做到这一点,或者至少能从结果中提取出第一个数字的方法?谢谢!

5 个回答

1

你可以解析一下 /usr/bin/sw_vers 命令的输出结果。

4

如果你已经在使用os这个模块,那么你可能想试试os.uname()这个功能。

import os
os.uname()
49
>>> 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() 返回的元组中的第三个项目,它的格式也是类似的字符串。

撰写回答