您的位置:

Python中获取操作系统名称的方法

一、使用platform模块

在Python中,可以使用platform模块来获取当前操作系统的名称以及其他相关信息:

import platform

system = platform.system()

print("当前操作系统名称:", system)

运行上面的代码,可以输出当前操作系统的名称,例如Windows、Linux等。

二、使用os模块

另外一个获取操作系统名称的方法是使用os模块。os模块提供的uname()函数可以获取系统相关信息,包括系统名称和版本号:

import os

system_info = os.uname()

print("当前操作系统名称:", system_info.sysname)
print("当前操作系统版本号:", system_info.release)

运行上面的代码,可以输出当前操作系统的名称和版本号,例如Linux系统的名称是Linux,版本号是Linux-5.4.0-26-generic。

三、使用sys模块

还可以使用sys模块,sys.platform属性会返回关于操作系统的信息:

import sys

print("当前操作系统名称:", sys.platform)

运行上面的代码,可以输出当前操作系统的名称,例如win32或linux。

四、使用ctypes模块

在Python中还可以使用ctypes模块来调用Windows系统API获取操作系统的名称。由于Windows API使用DLL文件来实现,因此需要使用ctypes模块将DLL文件加载到Python中:

import ctypes

def get_windows_version():
    kernel32 = ctypes.windll.LoadLibrary("kernel32.dll")
    GetVersionExW = kernel32.GetVersionExW
    GetVersionExW.argtypes = [ctypes.POINTER(ctypes.c_void_p)]
    GetVersionExW.restype = ctypes.c_void_p

    info = ctypes.c_void_p()
    GetVersionExW(ctypes.byref(info))
    major_version = ctypes.c_uint()
    minor_version = ctypes.c_uint()
    build_number = ctypes.c_uint()
    product_type = ctypes.c_uint()

    # 获取版本等信息
    ctypes.windll.Ntdll.RtlGetNtVersionNumbers(ctypes.byref(
        major_version), ctypes.byref(minor_version), ctypes.byref(build_number))
    product_type = ctypes.c_uint()

    return major_version.value, minor_version.value, build_number.value

if __name__ == "__main__":
    if ctypes.windll.kernel32.GetVersionExW:
        version = get_windows_version()
        print("当前操作系统名称:Windows", version[0], ".", version[1], "build", version[2])
    else:
        print("不是Windows操作系统")

运行上面的代码,可以输出当前Windows操作系统的名称,例如Windows 10 build 18363。

五、小结

在Python中获取操作系统名称的方法有多种,使用platform、os、sys以及ctypes模块都可以实现这一功能。如果要编写跨平台的Python程序,建议使用platform或sys模块来获取操作系统名称,因为它们是跨平台的;如果只考虑在Windows平台上运行,可以使用ctypes模块调用Windows系统API来获取操作系统名称。