我想检查操作系统(脚本运行的计算机上的操作系统)。
我知道在Linux中可以使用os.system('uname -o')
,但它会在控制台输出信息,而我想要将其写入变量。
如果脚本能告诉我它是Mac、Windows还是Linux,那就没问题了。我该怎么检查呢?
我想检查操作系统(脚本运行的计算机上的操作系统)。
我知道在Linux中可以使用os.system('uname -o')
,但它会在控制台输出信息,而我想要将其写入变量。
如果脚本能告诉我它是Mac、Windows还是Linux,那就没问题了。我该怎么检查呢?
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"
。 - Michał Bentkowski如果你想知道你正在使用的平台是“Linux”、“Windows”还是“Darwin”(Mac),而没有更多的精确信息,那么你应该使用:
import sys
print(sys.platform)
>>> import platform
>>> platform.system()
'Linux' # or 'Windows'/'Darwin'
platform.system
函数内部使用uname
。
Linux
、Windows
、Java
或一个空字符串。https://devdocs.io/python~3.7/library/platform#platform.system - Brandon Benefieldsys.platform
来大致确定你正在使用的操作系统。一旦获得这些信息,你就可以使用它来确定是否适合调用类似 os.uname()
来收集更具体的信息。对于类 Unix 的操作系统,你还可以使用像 Python 系统信息 这样的东西,对于 Windows,你可以使用 pywin32。如果你想进行更深入的检查而不必关心操作系统,则可以使用 psutil。更加详细的信息可以在platform
模块中找到。
platform
模块是否比 sys.platform
有任何优势?我应该在什么情况下使用哪种方法? - matthplatform
模块获得更详细、更有结构化的信息。只需点击文档链接即可。 - Sven Marnach