如何在Python中可靠地检查Windows发行版?

时间:2014-01-31 23:32:19

标签: python windows operating-system cross-platform

我看到了两个相关的问题......

How to check if OS is Vista in Python?

Detect Windows 8.1 in Python?

如果我理解正确,Windows Vista,7和8之间的旧问题'platform.release()'的答案似乎不可靠。第二个问题尚未得到解答,似乎表明'sys.getwindowsversion()'也不可靠。

对于此特定问题,我不必担心早于XP或其他操作系统的Windows版本。

3 个答案:

答案 0 :(得分:1)

使用platform可能是最可靠的

>>> import platform
>>> print platform.platform()
Windows-7-6.1.7601-SP1
>>>

答案 1 :(得分:0)

本身简单:

import platform
platform.platform()

Python platform library

答案 2 :(得分:0)

从Windows 8.1开始,Microsoft改变了基础版本功能的工作方式。因此,虽然Windows 8.1 应该返回6.3作为版本号,但除非该应用程序是针对Windows 8.1明确表现的。因此,对于Windows 8.1和Server 2012 R2 platform.platform()不会按预期工作。在我的Windows 8.1框中,我将其作为输出:

>>> import platform
>>> platform.platform()
'Windows-post2008Server-6.2.9200'

以上显示Windows 8.1明确标识为NT版本6.2,这是错误的。应该是6.3。

有关获取真实Windows版本号的方法,请参阅此其他主题上的my answer,即使在Windows 8.1和Server 2012 R2上也是如此。