python3读写windows注册表实例

网上的很多代码真的只能参考,有很多停留在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.csdn.net/pondbay/article/details/9424817

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

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

来源:站长新闻

相关文章

Windows2012R2备用域控搭建 前置操作 域控主域控的主dns:自...
主域控角色迁移和夺取(转载) 转载自:http://yupeizhi.blo...
Windows2012R2 NTP时间同步 Windows2012R2里没有了internet时...
Windows注册表操作基础代码 Windows下对注册表进行操作使用的...
黑客常用WinAPI函数整理之前的博客写了很多关于Windows编程的...
一个简单的Windows Socket可复用框架说起网络编程,无非是建...