在 Python 中获取 Windows 版本

Get Windows Version in Python

当我在控制台 (CMD) 中输入“winver”时,我会得到我的 windows 版本(内部版本号左边的四个数字,例如:1803,1903,1909,2004,20H2) 但是我怎样才能在 python 中获得我的 windows 版本? 我已经试过了:

import os
os.system("winver")
input()

但随后它会像在 cmd 中那样打开一个新的 window,但我只想打印 winver 而没有其他内容,因此我这样做了:

import os
os.system("Reg Query "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion" /v ReleaseId")
input()

但问题是 字符串在字符串 中。 "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion"

我该如何解决?请帮忙!

要将字符串放在字符串中而不出现 sinttax 错误,您应该使用单引号。 代码如下所示:

import os
os.system("Reg Query 'HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion' /v ReleaseId")
input()

你可以使用platform模块

import platform

print(platform.platform())
print(platform.system())
print(platform.release())
print(platform.version())
print(platform.version().split('.')[2]) 
print(platform.machine())

输出:

Windows-10-10.0.19041-SP0
Windows
10
10.0.19041
19041
AMD64

您可以使用 sys 库,它有一个专门用于此的命令。 Python Docs on sys

import sys
version = sys.getwindowsversion()
print(version)
print(version[2]) # You can directly reference the build element by index number
print(version.build) # Or by name

输出:

sys.getwindowsversion(major=10, minor=0, build=19042, platform=2, service_pack='')
19042
19042

我在系统中找到的唯一包含 20H2 值的注册表项是

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\DisplayVersion

Displayversion 也是一个 REG_SZ 值。

遗憾的是,我不知道此条目从哪个 Windows 10 版本开始存在。我发现一些信息表明,在较旧的 Windows 10 安装中,此密钥是一个可选的 32 位 DWORD 值,可用于显示构建信息、版本、桌面上的 WinDir 路径。

但这绝对是 winver 从中获取版本信息的位置。如果修改字符串,winver 也会显示修改后的值。