我将编写一个执行 Windows 操作系统版本检查的程序,因为我可以使用 sys.windowsversion()[0] 或返回字符串而不是 int 的平台模块来执行此操作,获得 Windows 发布版本的更好方法是什么?
问问题
3254 次
2 回答
6
你可以通过调用来做到这一点sys.getwindowsversion
。例如这个输出:
>>> sys.getwindowsversion()
sys.getwindowsversion(major=6, minor=1, build=7601, platform=2, service_pack='Service Pack 1')
适用于 Windows 7。
来源: http: //mail.python.org/pipermail/tutor/2003-November/026227.html
于 2012-09-18T06:55:01.927 回答
4
在 C 中执行此操作的常用方法是通过 _WIN32_WINNT 宏,其值在此处记录。sys.getwindowsversion()可以间接用于确定 _WIN32_WINNT,因为它公开了所有必要的位。
import sys
WIN_10 = (10, 0, 0)
WIN_8 = (6, 2, 0)
WIN_7 = (6, 1, 0)
WIN_SERVER_2008 = (6, 0, 1)
WIN_VISTA_SP1 = (6, 0, 1)
WIN_VISTA = (6, 0, 0)
WIN_SERVER_2003_SP2 = (5, 2, 2)
WIN_SERVER_2003_SP1 = (5, 2, 1)
WIN_SERVER_2003 = (5, 2, 0)
WIN_XP_SP3 = (5, 1, 3)
WIN_XP_SP2 = (5, 1, 2)
WIN_XP_SP1 = (5, 1, 1)
WIN_XP = (5, 1, 0)
def get_winver():
wv = sys.getwindowsversion()
if hasattr(wv, 'service_pack_major'): # python >= 2.7
sp = wv.service_pack_major or 0
else:
import re
r = re.search("\s\d$", wv.service_pack)
sp = int(r.group(0)) if r else 0
return (wv.major, wv.minor, sp)
用法:
if get_winver() >= WIN_XP_SP3:
...
于 2013-12-27T17:07:27.073 回答