winreg模块的使用
python有内置的注册表操作库--winreg(在33版本中为winreg,在2x版本为_winreg).
1.打开键,枚举键值
1 # -*- coding: gbk -*- 2 import winreg 3 key=winreg.OpenKey(winreg.HKEY_LOCAL_MACHINE,r"SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\Interfaces\{166AFB9D-6834-49CA-90AA-AA18F924ADA7}",reserved=0,access=winreg.KEY_READ) 4 5 try: 6 i=0 7 while 1: 8 k,v,t=winreg.EnumValue(key,i) 9 print(k,v) 10 i+=2 11 except OSError: 12 print("打开键失败") 13 winreg.CloseKey(key)
2.创建键,以及设置键值
1 # -*- coding: gbk -*- 2 import winreg 3 4 key=winreg.OpenKey(winreg.HKEY_LOCAL_MACHINE,r"SOFTWARE",access=winreg.KEY_READ | winreg.KEY_SET_VALUE) 5 6 7 try: 8 handle=winreg.CreateKey(key,r"test") 9 winreg.SetValue(key,r"test",winreg.REG_SZ,"199999") 10 except OSError: 11 print("创建键失败") 12 winreg.CloseKey(key)
3.删除键
1 # -*- coding: gbk -*- 2 import winreg 3 import sys 4 5 key=winreg.OpenKey(winreg.HKEY_LOCAL_MACHINE,r"SOFTWARE",access=winreg.KEY_READ | winreg.KEY_SET_VALUE | winreg.KEY_QUERY_VALUE) 6 7 8 try: 9 if winreg.CreateKey(key,r"test"): 10 print("test键创建成功") 11 else: 12 sys.exit(1) 13 winreg.SetValue(key,r"test",winreg.REG_SZ,"199999") 14 winreg.DeleteKey(key,r"test") 15 except OSError: 16 print("faied!!") 17 winreg.CloseKey(key)