2016-02-03 40 views
0

我在Python 3.4中使用winreg来获取Windows注册表值。 我已经建立了一个系统来获取CPU信息(CPU名称,最大频率等),我试图调整它以获取GPU信息。 唯一的问题是,包含GPU的值存储在那里的关键是:系统\ CurrentControlSet \控制\影片{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") 

但我得到这个错误:“打开项()参2必须是没有空字符或无STR,不STR” 所以我的问题是:如何在使用空字符路径? 非常感谢, Julien。

回答

0

字符串中的反斜杠字符在Python中用作转义序列。

使用它们作为常规字符的最简单方法是使用R-字符串:

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

即使用r"...",而不是仅仅"..."。这样反斜杠字符不被用作转义字符。

+0

感谢您的回答, 但我怎样才能使用包含字符串的变量的原始字符串? 像这样:self.subkey = winreg.OpenKey(self.connection,self.directory)? –

+0

你不需要。只有在将Python的源代码转换为Python字符串对象时才会处理转义序列。 –

+0

感谢您的帮助。祝你有美好的一天。 –