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

时间:2009-11-22 00:41:07

标签: python macos

我的应用程序假定在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 个答案:

答案 0 :(得分:40)

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

正如你所看到的,元组mac_ver返回的第一项是一个字符串,而不是一个数字(难以将'10 .5.8'变成一个数字! - ),但操作{很容易{1}}将字符串转换为您想要的数字种类。例如,

10.x.y

如果您更喜欢Darwin内核版本而不是MacOSX版本,那也很容易访问 - 使用类似格式的字符串,它是>>> v, _, _ = platform.mac_ver() >>> v = float('.'.join(v.split('.')[:2])) >>> print v 10.5 返回的元组的第三项。

答案 1 :(得分:3)

如果您已经在使用os,则可能需要使用os.uname()

import os
os.uname()

答案 2 :(得分:1)

您可以解析/ usr / bin / sw_vers命令的输出。

答案 3 :(得分:1)

platform.mac_ver()将返回一个元组(release,versioninfo,machine

所以按代码获取mac版本

>>> platform.mac_ver()[0]

'10.8.4'

这种方法很简单

答案 4 :(得分:0)

如果您想运行命令(例如'uname')并将结果作为字符串获取,请使用subprocess module

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