Я не знаю, есть ли библиотека, которая может читать файлы .reg, но, судя по всему, это просто INI-файл с дополнительной информацией о версии вверху.
Вот примеркак вы могли бы использовать модуль configparser
для этого.Некоторые примечания:
- .reg файлы кодируются в utf16
- Перед передачей файла в
ConfigParser
, readline
пропустит информацию о версии (что-то вроде Windows Registry Editor Version 5.00
).В противном случае это приведет к MissingSectionHeaderError
. - Имена значений включают кавычки, что означает, что вам нужно добавить их явно при поиске значения в ключе.
import configparser
testloc = "C:\\Users\\test.reg"
regdata = configparser.ConfigParser()
with open(testloc, "r", encoding="utf-16") as f:
f.readline() # skip version info in first line
regdata.read_file(f)
key = regdata[r"HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\Group Policy\{35378EAC-683F-11D2-A89A-00C04FBBCFA2}"]
value = key['"NoBackgroundPolicy"']
print(value)
Однако при таком способе могут быть недостатки, например, в том, как форматируются полученные значения.