【发布时间】:2014-02-27 21:24:03
【问题描述】:
我正在从文本文件中读取注册表的读取路径。注册表路径是
HKEY_LOCAL_MACHINE\软件\MYAPP\6.3我将此注册表存储在一个变量中:
REGISTRY_KEY然后我从字符串中剥离 HKEY_LOCAL_MACHINE 部分并尝试读取键处的值。
如果 REGISTRY_KEY.split('\\')[0] == "HKEY_LOCAL_MACHINE": keyPath = REGISTRY_KEY.strip("HKEY_LOCAL_MACHINE\\") 尝试: 键 = winreg.OpenKey(winreg.HKEY_LOCAL_MACHINE, keyPath) value = winreg.QueryValueEx(key, "InstallPath")[0] 除了 IOError 作为错误: 打印(错误)我收到以下错误
[WinError 2] 系统找不到指定的文件但是,如果我像手动操作
key = winreg.OpenKey(winreg.HKEY_LOCAL_MACHINE,r'Software\MYAPP\6.3')或
键 = winreg.OpenKey(winreg.HKEY_LOCAL_MACHINE,"软件\\MYAPP\\6.3")它有效。
那么有什么方法可以让 keyPath 变量成为原始字符串或包含双 '\'
PS:我使用的是 Python 3.3
【问题讨论】:
-
在 OpenKey 中使用
keyPath之前是什么(尝试打印) -
"raw" 字符串和转义斜杠仅用于文字输入字符串。字符串本身也不存储。
-
您从文件中读取的字符串是否可能包含换行符?您可以尝试在调用
OpenKey时使用keyPath.strip()吗? -
@SylvainDefresne 它起作用了......从昨天开始我就一直在摸索它
标签: python python-3.x