网上的很多代码真的只能参考,有很多停留在python2的编码风格或者没更新新模块的语法沿用语法编写!(当然这是个人观点,如果是系统工程的编码优点还望指正)

winreg是内置模块,不用安装,直接上码

import winreg
dict1 = {} #新建字典
reg_name = [] #新建数组,存放注册表名
reg_value = [] #新建数组,存放注册表值
key = winreg.CreateKey(winreg.HKEY_CURRENT_USER,
r"Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders")
### 根据官网说明,windows注册表没有提供api返回表项数量,只能设置循环到最后强制退出,自己计算
try:
i = 0
while 1:
name, value, type = winreg.EnumValue(key, i)
reg_name.append(name)
reg_value.append(value)
dict1 = dict(zip(reg_name, reg_value)) #利用zip绑定两个返回项做成字典,方便查找
i += 1
except OSError:
pass
print(dict1.get(‘Desktop‘))

方法可能有点笨拙,因为编程经验缺乏,如有建议还望大虾指导指正

备注:

新winreg模块使用CreateKey、OSError替代,保留OpenKey、WindowsError别名用作兼容!

删除还在研究,如有心得会补充更新,可以参考下面两个链接的说明

Reference:

https://blog.51cto.com/11097647/1888591

https://docs.python.org/3/library/winreg.html?highlight=winreg#  python官网描述winreg模块