2016-02-03 4 views
0

Я использую winreg в python 3.4 для получения значений реестра Windows. Я уже установил систему для получения информации о CPU (имя процессора, максимальную частоту и т. Д.), И я пытаюсь адаптировать его для получения информации о GPU. Единственная проблема заключается в том, что ключ, который содержит значения GPU там хранится: SYSTEM \ CurrentControlSet \ Control \ Video {D1B33FF8-E663-44A7-9C71-2CE551F6C0EE} \ 0000Использование winreg для получения сведений о GPU

Так вот мой код линии, чтобы добраться до GPU «каталог»:

self.connection = winreg.ConnectRegistry(None, winreg.HKEY_LOCAL_MACHINE) 
self.subkey = winreg.OpenKey(self.connection, "SYSTEM\CurrentControlSet\Control\Video\{D1B33FF8-E663-44A7-9C71-2CE551F6C0EE}\0000") 

Но я получаю эту ошибку: «OpenKey() аргумент 2 должен быть Облами без нулевых символов или None, не StR» Так что мой вопрос: Как я могу использовать нулевые символы в дорожка ? Большое спасибо, Жюльен.

ответ

0

Символы обратной косой черты в качестве управляющих последовательностей используются в Python.

Самый простой способ использовать их как обычные символы, чтобы использовать г-строку:

self.subkey = winreg.OpenKey(self.connection, r"SYSTEM\CurrentControlSet\Control\Video\{D1B33FF8-E663-44A7-9C71-2CE551F6C0EE}\0000") 

То есть использовать r"...", а не только "...". Таким образом, символ обратной косой черты не используется как escape-символ.

+0

Спасибо за ответ, Но как я могу использовать необработанную строку с переменной, содержащей строку? Нравится это: self.subkey = winreg.OpenKey (self.connection, self.directory)? –

+0

Вам не обязательно. Последовательности Escape обрабатываются только при преобразовании исходного кода Python для строки в строковый объект Python. –

+0

Спасибо за помощь. Хорошего дня. –

 Смежные вопросы

  • Нет связанных вопросов^_^