首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在python中获取windows版本的更好方法是什么?

在python中获取windows版本的更好方法是什么?
EN

Stack Overflow用户
提问于 2012-09-18 14:52:17
回答 2查看 3.2K关注 0票数 3

我要写一个程序来执行Windows OS版本检查,因为我可以用sys.windowsversion()或平台模块来做,它返回字符串而不是整数。有什么更好的方法来获得windows发布版本?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-09-18 14:55:02

您可以通过调用sys.getwindowsversion来完成此操作。例如,以下输出:

代码语言:javascript
复制
>>> 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

票数 6
EN

Stack Overflow用户

发布于 2013-12-28 01:07:27

在C中,通常的方法是通过_WIN32_WINNT宏,它的值记录在here中。sys.getwindowsversion()可以间接用于确定_WIN32_WINNT,因为它公开了所有必需的位。

代码语言:javascript
复制
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)

用法:

代码语言:javascript
复制
if get_winver() >= WIN_XP_SP3:
     ...
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12471772

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档