如何在Python中检查操作系统?

时间:2011-11-21 23:40:15

标签: python linux operating-system

我想检查操作系统(在运行脚本的计算机上)。

我知道我可以在Linux中使用os.system('uname -o'),但它在控制台中给我一条消息,我想写一个变量。

如果脚本可以判断它是Mac,Windows还是Linux,那也没关系。我怎么检查呢?

7 个答案:

答案 0 :(得分:219)

您可以使用sys.platform

from sys import platform
if platform == "linux" or platform == "linux2":
    # linux
elif platform == "darwin":
    # OS X
elif platform == "win32":
    # Windows...

sys.platform的粒度比sys.name更精细。

有关有效值,请参阅the documentation

答案 1 :(得分:14)

您可以通过查看sys.platform来了解您正在使用的操作系统。

获得该信息后,您可以使用它来确定调用类似os.uname()的内容是否适合收集更具体的信息。你也可以在类似unix的操作系统上使用类似Python System Information的东西,或者在Windows上使用pywin32

如果您想进行更深入的检查而不想关心操作系统,还有psutil

答案 2 :(得分:14)

如果你想知道你是哪个平台:" Linux"," Windows"或者"达尔文" (Mac)没有更高的精度,你应该使用:

>>> import platform
>>> platform.system()
'Linux'  # or 'Windows'/'Darwin'

platform.system函数在内部使用uname

答案 3 :(得分:7)

platform module中提供了更详细的信息。

答案 4 :(得分:3)

您可以使用sys.platform

答案 5 :(得分:0)

import sys                  # Load a library module
print(sys.platform)

以上代码将打印出底层操作系统。

答案 6 :(得分:-3)

似乎有一些关于Windows如何识别的冲突信息。一些消息来源称“Windows”,其他消息来源称“win32”。

考虑到这一点......

from sys import platform

if "win" in platform.lower():
    print platform

win32

但在Cygwin中可能也是如此。但你可以随时添加一张支票,以确保“cy”不在那里。