我覺得我正在服用瘋狂的藥丸。因此,爲了在工作中使用api上的安全性,我必須從註冊表中讀取2個東西,然後傳遞給suds。問題是讀取註冊表值。無論我做什麼,我都會得到「Error2系統找不到指定的文件」。我知道註冊表文件在那裏,但它不會讓我讀它。我已經在2個不同的2008 R2服務器上嘗試了下面的代碼。在一個Windows 7盒子上,我可以讀取值......但只能在一臺機器上讀取。下面是代碼,與實際目錄我需要改變(以保護匿名)閱讀與python問題的註冊表值
from _winreg import *
key = OpenKey(HKEY_LOCAL_MACHINE, r"Software\a\b", 0, KEY_ALL_ACCESS)
devguid = QueryValueEx(key, "DeviceID")
devid = QueryValueEx(key, "DeviceGUID")
devnm = socket.gethostname()
如果我改變目錄\比A \ B以外的東西,它工作正常。我已驗證這些目錄的權限與我可以讀取的目錄完全相同。
另外,我可以從CMD運行下面的命令,並得到輸出我需要: REG查詢HKLM \ SOFTWARE \ A \ B/V DEVICEGUID 但是,當我從一個Python腳本運行它,它說找不到文件指定。
import os
cmd = "reg query HKEY_LOCAL_MACHINE\software\a\b /v DeviceGUID"
a = os.system(cmd)
print a
運行我的腳本作爲管理員或任何東西都沒有幫助。出於某種原因,python無法嘗試並準備註冊表....
你的第二個不會工作,因爲你沒有逃脫'\\' – Serdalis 2013-04-11 00:48:22