【问题标题】:Using winreg for getting GPU details使用 winreg 获取 GPU 详细信息
【发布时间】:2016-02-03 10:34:16
【问题描述】:

我在 python 3.4 中使用 winreg 来获取 Windows 注册表值。 我已经设置了一个系统来获取 CPU 信息(cpu 名称、最大频率等),并且我正在尝试对其进行调整以获取 GPU 信息。 唯一的问题是包含 GPU 值的密钥存储在那里:SYSTEM\CurrentControlSet\Control\Video{D1B33FF8-E663-44A7-9C71-2CE551F6C0EE}\0000

所以这是我进入 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 必须是不带空字符的 str 或 None,而不是 str” 所以我的问题是:如何在路径中使用空字符? 非常感谢, 朱利安。

【问题讨论】:

    标签: python winreg


    【解决方案1】:

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

    将它们用作常规字符的最简单方法是使用 r 字符串:

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

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

    【讨论】:

    • 感谢您的回答,但是如何将原始字符串与包含字符串的变量一起使用?像这样: self.subkey = winreg.OpenKey(self.connection, self.directory) ?
    • 您不必这样做。只有在将字符串的 Python 源代码转换为 Python 字符串对象时才会处理转义序列。
    猜你喜欢
    • 1970-01-01
    • 2019-08-04
    • 1970-01-01
    • 2013-01-19
    • 1970-01-01
    • 2014-03-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多