tags:

views:

48

answers:

1

Currently I am using this:

def _get_mac_ver():
    import subprocess
    p = subprocess.Popen(['sw_vers', '-productVersion'], stdout=subprocess.PIPE)
    stdout, stderr = p.communicate()
    return stdout.strip()

Is there a better version (eg: by using built-in Python API)?

>>> print _get_mac_ver()
10.6.3

Note: I tried os.uname()[2] which prints 10.3.0 on a Snow Leopard system.

+7  A: 

True to the philosophy that python comes with batteries included, there is a module in the standard library to do this: platform.

See in particular the `mac_ver()' function:

>>> import platform
>>> platform.mac_ver()
('10.6.3', ('', '', ''), 'i386')
>>> print platform.mac_ver()[0]
10.6.3
fmark