如何检查操作系统是否是Python的Vista?

如何以最简单的方式区分Windows XP和Windows Vista,使用Python和pywin32或wxPython ?

本质上,我需要一个函数,如果当前操作系统是Vista,将返回True:

>>> isWindowsVista() True 

Python有可爱的“平台”模块来帮助你。

 >>> import platform >>> platform.win32_ver() ('XP', '5.1.2600', 'SP2', 'Multiprocessor Free') >>> platform.system() 'Windows' >>> platform.version() '5.1.2600' >>> platform.release() 'XP' 

注意:正如在注释中提到的那样,使用旧版本的python时,可能不会返回正确的值。

Twisted中使用的解决方案,不需要pywin32:

 def isVista(): if getattr(sys, "getwindowsversion", None) is not None: return sys.getwindowsversion()[0] == 6 else: return False 

请注意,它也将匹配Windows server 2008。

我找到的最简单的解决方案是:

 import sys def isWindowsVista(): '''Return True iff current OS is Windows Vista.''' if sys.platform != "win32": return False import win32api VER_NT_WORKSTATION = 1 version = win32api.GetVersionEx(1) if not version or len(version) < 9: return False return ((version[0] == 6) and (version[1] == 0) and (version[8] == VER_NT_WORKSTATION)) 

http://www.brunningonline.net/simon/blog/archives/winGuiAuto.py.html的想法可能会帮助,它可以基本上回答你的问题&#xFF1A;

 win_version = {4: "NT", 5: "2K", 6: "XP"}[os.sys.getwindowsversion()[0]] print "win_version=", win_version 
 import platform if platform.release() == "Vista": # Do something. 

要么

 import platform if "Vista" in platform.release(): # Do something.