python - 在 OS X 上获取操作系统版本

标签 python linux macos unix ubuntu

我有一个用于在 Ubuntu 中运行的旧脚本。 现在,我有一台 Mac,想重用该脚本。

有谁知道在 Mac OS 中以下命令等同于什么?

def runCmd(cmd):
    p = subprocess.Popen(cmd,
                         shell=True, 
                         stdin=subprocess.PIPE, 
                         stdout=subprocess.PIPE, 
                         stderr=subprocess.PIPE, 
                         close_fds=True)
    result=p.stdout.readlines()
    s=result[0].split()[0]
    return s

def getKernelVer():
    cmd="uname -r| cut --delim=\'.\' -f1-2"
    return runCmd(cmd)

def getUbuntuVer():
    cmd="lsb_release  -a | grep Release | cut -f 2"
    return runCmd(cmd)

谢谢

最佳答案

uname -r 在 Darwin 下的工作方式相同。内核版本不是大多数人谈论或关心的东西,但它就在那里。唯一的问题是 cut 不支持 --delim 长选项,所以,试试这个:

uname -r | cut -d. -f1-2

不过,Darwin 的内核版本控制与 Linux 的完全不同,因此此处运行 cut 的目的尚不清楚。 (事实上​​ ,在 Linux 上也不太清楚,因为版本控制方案随着 3.0 版发生了重大变化。)

要获取当前版本的 Mac OS(大致相当于您为 Ubuntu 获取的“发行版”),您可以使用以下命令:

sw_vers -productVersion

关于python - 在 OS X 上获取操作系统版本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14802694/

相关文章:

macos - 如何在mac上安装/启动neo4j?

python - django 1.5 中的 django.utils.thread_support

python : How to access file from different directory

python - 在 Python 中运行 shell 内置命令

c# - VS 2017 for Mac 错误 MSB3073

css - Chrome 中我的单选按钮左侧有裁剪

python - Pandas DataFrame 中两个非数字列之间的相关性

python - uwsgi + Flask + virtualenv ImportError : no module named site

linux - 在终端中显示大数字

c - 在线程创建时将一个简单整数传递给线程的启动函数