我想检查操作系统(在运行脚本的计算机上)。
我知道我可以在Linux中使用os.system('uname -o')
,但它在控制台中给我一条消息,我想写一个变量。
如果脚本可以判断它是Mac,Windows还是Linux,那也没关系。我怎么检查呢?
答案 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”不在那里。