在很多情况下,需要在python中获取当前系统的类型,用于判断是unix/windows/mac或者java虚拟机等,python中提供了os.name, sys.platform, platform.system等方式
sys
sys.platform会返回当前系统平台的标识符,Linux 是 ‘linux’;Windows 是 ‘win32’ 或者 ‘win64’;macOS 是 ‘darwin’,可以使用startswith()函数来进行判断。
import sys
def get_sys():
if sys.platform.startswith("win"):
print("当前系统是Windows")
return 'windows'
elif sys.platform.startswith("linux"):
print("当前系统是Linux")
return 'linux'
elif sys.platform.startswith("darwin"):
print("当前系统是Mac OS")
return 'mac'
else:
print("当前系统是其他操作系统")
return 'other'
platform
import platform
def get_sys():
system = platform.system()
if system == "Windows":
print("当前系统是Windows")
return 'windows'
elif system == "Linux":
print("当前系统是Linux")
return 'linux'
elif system == "Darwin":
print("当前系统是Mac OS")
return 'mac'
else:
print("当前系统是其他操作系统")
return 'other'
os
import os
def get_sys():
system = os.name
if system == "nt":
print("当前系统是Windows")
return 'windows'
elif system == "posix":
print("当前系统是Linux或Mac OS")
return 'linux'
elif system == "java":
print("当前系统是java虚拟机")
return 'java'
else
print("当前系统是其他操作系统")
return 'other'
主要区别
- sys.platform 在构建配置时指定的编译器定义
- os.name 用于检查特定的某些模块是否可用(例如:POSIX,nt, …)
- platform.system() 实际上运行uname和潜在的几个其他函数来确定运行时的系统类型