【python操作注册表】Python删除注册表节点下的值
背景
本来是别的平台的一个bug,以为自己去沟通然后让他们修就好了,结果又是这样别人的坑自己来填。主要是在卸载的时候要删除注册表下的所有节点。
关于python操作注册表模块
上网查了下,大致分为以下两种:第一种是通过Python的内置模块 winreg;另一种方式就是Win32 Extension For Python 的win32api模块,但是需要进行额外的安装。
Python的内置模块 winreg
比如,在注册表HKEY_LOCAL_MACHINE\SOFTWAR下,添加一个“”节点,如下图所示:
用Python的内置模块 winreg写出的代码如下`
import winreg
key = winreg.OpenKey(winreg.HKEY_LOCAL_MACHINE,r"Software" )
newKey = winreg.CreateKey(key, " MyNewkey " )
- 1
- 2
- 3
如果要删除该节点,则用wg.DeleteKey()
wg.DeleteKey(key, " MyNewkey " )
- 1
Win32 Extension For Python 的win32api模块
win32api 和 winreg 的方法很类似,一般是多了一个前缀”Reg”。
遇到的一些问题
在用winreg模块写的时候,遇到了python中permissionerror winerror 5 的报错,上网上找了一些资料后发现对我不适用。后来想了一下应该是访问注册表的权限问题。
就用管理员的身份运行pycharm,在运行程序,就好啦。
关于permissionerror winerror 5 拒绝访问的问题
找到最多的是这个:三步解决python PermissionError: [WinError 5]拒绝访问的情况。
https://blog.csdn.net/qq_33731081/article/details/103812749
但是对于我这种情况没什么用处,大家遇到的话可以参考下。
参考文献
https://www.cnblogs.com/hester/p/7590358.html