Answers:
您可以使用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
。
有关有效值,请参阅文档。
另请参见“我正在运行什么操作系统?”的答案。
"cygwin"
不会"win32"
像预期的那样返回。
"linux2"
不再是的可能值platform
(请参见链接的文档以确认),因此,如果您仅需要支持Python 3.3及更高版本,则可以安全地从第一个条件。
如果您想更精确地了解使用“ Linux”,“ Windows”或“ Darwin”(Mac)的平台,则应使用:
>>> import platform
>>> platform.system()
'Linux' # or 'Windows'/'Darwin'
该platform.system
函数在uname
内部使用。
Linux
,Windows
,Java
或一个空字符串。devdocs.io/python~3.7/library/platform#platform.system
通过检查,您可以大致了解所使用的操作系统sys.platform
。
获得这些信息后,您可以使用它来确定调用类似的东西os.uname()
是否适合收集更具体的信息。您也可以在类似Unix的操作系统上使用Python系统信息,或者在Windows 上使用pywin32。
如果您想进行更深入的检查而又不想关心操作系统,那么也可以使用psutil。
该platform
模块中提供了更多详细信息。
platform
模块,有什么优势sys.platform
吗?我什么时候要使用哪种方法?
platform
模块中获得更详细的结构化信息。只需单击文档的链接。