2016-02-03 41 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

感謝您的幫助。祝你有美好的一天。 –