在Windows 8上访问Windows版本的Python _winreg错误

时间:2014-05-22 21:05:30

标签: python python-2.7 winreg

我可以在注册表编辑器中看到值,路径是 HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows NT\CurrentVersion

我想打印我可以看到的产品名称是Windows 8,但是当我运行我的程序以获得64位笔记本电脑上的Windows版本时:

def get_registry_value(key, subkey, value):
  import _winreg
  key = getattr(_winreg, key)
  handle = _winreg.OpenKey(key, subkey)
  (value, type) = _winreg.QueryValueEx(handle, value)
  return value

def os_version():
  def get(key):
    return get_registry_value(
        "HKEY_LOCAL_MACHINE", 
        "SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion",
        key)
  os = get("ProductName")
  sp = get("CSDVersion")
  build = get("CurrentBuildNumber")
  return "%s %s (build %s)" % (os, sp, build)

我正在

  

WindowsError:错误[2]“系统找不到指定的文件”

所以我将代码修改为

key = getattr(_winreg, key)
handle = _winreg.OpenKey(key, subkey ,0 ,_winreg.KEY_READ | _winreg.KEY_WOW64_64KEY)

但我仍然得到同样的错误 我做错了哪一部分?如何获取我的操作系统版本?

1 个答案:

答案 0 :(得分:0)

在Windows 7上完美适合我...

in > print os_version()
out > Windows 7 Enterprise Service Pack 1 (build 7601)