import winreg def regkey_value(path, name="", start_key = None): if isinstance(path, str): path = path.split("\\") if start_key is None: start_key = getattr(winreg, path[0]) return regkey_value(path[1:], name, start_key) else: subkey = path.pop(0) with winreg.OpenKey(start_key, subkey) as handle: assert handle if path: return regkey_value(path, name, handle) else: desc, i = None, 0 while not desc or desc[0] != name: desc = winreg.EnumValue(handle, i) i += 1 return desc[1] # example usage bios_vendor = regkey_value(r"HKEY_LOCAL_MACHINE\HARDWARE\DESCRIPTION\System\BIOS", "BIOSVendor")