os.path.exists не распознает подкаталог в папке C: \ Windows \ system32 \ drivers - PullRequest
1 голос
/ 12 августа 2011

Может кто-нибудь сказать мне, почему это поведение проявляется:

C:\...>dir C:\Windows\System32\drivers\subdir\0xDEADBEEF.008
 Volume in drive C is Win7HPx64
 Volume Serial Number is 04BF-EE2E

 Directory of C:\Windows\System32\drivers\subdir\0xDEADBEEF.008

08/11/2011  04:21 PM    <DIR>          .
08/11/2011  04:21 PM    <DIR>          ..
               0 File(s)              0 bytes
               2 Dir(s)  11,581,788,160 bytes free

C:\...>C:\Python27\python.exe
Python 2.7.1 (r271:86832, Nov 27 2010, 18:30:46) [MSC v.1500 32 bit (Intel)] on
win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import os
>>> silo = r'C:\Windows\System32\drivers\subdir\0xDEADBEEF.008'
>>> os.path.isdir(silo)
False
>>> os.path.exists(silo)
False

os.stat в указанном каталоге возникает ошибка Windows: «[Ошибка 3] Системе не удается найти указанный путь ....»

Я также пытался запустить консоль cmd с контекстным меню «Запуск от имени администратора». Без кости:

running as administrator

1 Ответ

4 голосов
/ 12 августа 2011

Если вы используете 32-битную сборку Python в 64-битной Windows, доступ к C: \ WINDOWS \ SYSTEM32 будет прозрачно перенаправлен в C: \ WINDOWS \ SYSWOW64. В 64-разрядных системах SYSTEM32 содержит 64-разрядные библиотеки DLL, а SYSWOW64 содержит 32-разрядные библиотеки DLL.

Чтобы получить доступ к реальному каталогу SYSTEM32 из 32-битного Python, используйте C: \ WINDOWS \ SYSNATIVE.

http://msdn.microsoft.com/en-us/library/aa384187%28v=vs.85%29.aspx

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...