我正在閱讀從文本文件讀取註冊表的路徑。註冊表路徑是顯式地將字符串轉換爲原始字符串
HKEY_LOCAL_MACHINE\Software\MYAPP\6.3
我保存這個註冊表變量:
REGISTRY_KEY
然後,我脫光了HKEY_LOCAL_MACHINE部分從字符串,並嘗試讀取的鍵的值。
if REGISTRY_KEY.split('\\')[0] == "HKEY_LOCAL_MACHINE": keyPath = REGISTRY_KEY.strip("HKEY_LOCAL_MACHINE\\") try: key = winreg.OpenKey(winreg.HKEY_LOCAL_MACHINE, keyPath) value = winreg.QueryValueEx(key, "InstallPath")[0] except IOError as err: print(err)
我收到以下錯誤
[WinError 2] The system cannot find the file specified
但是如果我做手工像
key = winreg.OpenKey(winreg.HKEY_LOCAL_MACHINE,r'Software\MYAPP\6.3')
OR
key = winreg.OpenKey(winreg.HKEY_LOCAL_MACHINE,"Software\\MYAPP\\6.3")
它的工作原理。
那麼,有什麼辦法可以使的keyPath變量要麼是原始的字符串或包含雙「\」
PS:我使用Python 3.3
結束一個換行符是什麼'keyPath'你打開項使用它(嘗試打印) – cmd
前「原始」字符串和轉義斜線僅用於文字輸入字符串。字符串本身不與任何一個存儲。 – mhlester
是否有可能從文件中讀取的字符串包含換行符?你可以嘗試在'OpenKey'的調用中使用'keyPath.strip()'嗎? –