我的应用程序假定在Mac OS X系统上运行。但是,我需要做的是弄清楚它运行的是什么版本的Mac OS(或Darwin),最好是数字。例如,
我发现你可以这样做,在我的系统上返回“8.11.0”:
import os
os.system("uname -r")
是否有更简洁的方法来执行此操作,或者至少是从结果中提取第一个数字的方法?谢谢!
答案 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]