2017-04-13 18 views
0

以下のエラーが表示されます。スペースのためにパスの問題のように見えます。Windowsパスの空白がWindowsErrorになっています:[エラー2]

>>> from _winreg import * 
>>> aReg = ConnectRegistry(None,HKEY_LOCAL_MACHINE) 
>>> print aReg 
<PyHKEY at 03216070 (000001C8)> 

>>> hKey = OpenKey(aReg, r"SOFTWARE\\Microsoft\\Windows\\Windows Error Reporting\\LocalDumps") 
Traceback (most recent call last): 
    File "<stdin>", line 1, in <module> 
WindowsError: [Error 2] The system cannot find the file specified 

正しく「Windows」にアップしています。

>>> hKey = OpenKey(aReg, r"SOFTWARE\\Microsoft\\Windows\\") 
>>> print hKey 
<PyHKEY at 03216050 (000001A0)> 
+1

生の文字列でバックスラッシュを二重にしないでください。単一のバックスラッシュで生の文字列を終了することはできません。 – eryksun

+0

パスが存在することを確認するためにwinreg.exeまたはreg.exeを使用したことがある場合は、32ビットのPythonを使用している可能性があります。 'hKey = OpenKey(HKEY_LOCAL_MACHINE、r" SOFTWARE \ Microsoft \ Windows \ Windowsエラー報告\ LocalDumps "、0、KEY_READ | KEY_WOW64_64KEY)'を明示的に開くように設定してください。 – eryksun

+1

[なぜPythonの単一のバックスラッシュの生の文字列が構文エラーを引き起こすのですか?](http://stackoverflow.com/questions/30283082/why-does-the-single-backslash-raw-string-in-python -cause-a-syntax-error) –

答えて

1

生の文字列とエスケープバックスラッシュの両方を使用しないでください。同じことを表現する2つの代替方法は、"a\\b == r"a\b"です。だから、私のマシン上でどちらか

r'SOFTWARE\Microsoft\Windows\Windows Error Reporting\LocalDumps' 

または

'SOFTWARE\\Microsoft\\Windows\\Windows Error Reporting\\LocalDumps' 

これはエラーなしで動作します。

from _winreg import * 
aReg = ConnectRegistry(None, HKEY_LOCAL_MACHINE) 
hKey = OpenKey(aReg, r'SOFTWARE\Microsoft\Windows\Windows Error Reporting\LocalDumps') 

が、私はそれがなかったため、キーLocalDumpsが最初に追加する必要がありました。

関連する問題