Я пытаюсь прочитать файл и создать хэш указанного файла. По большей части это прошло гладко. Однако есть несколько файлов, с которыми я не могу справиться. Например:
file("c:\\windows\\system32\\nvvsvc.exe")
Выдает ошибку: IOError: [Errno 2] No such file or directory: 'c:\\windows\\system32\\nvvsvc.exe
Аналогично команда:
subprocess.check_output(r"dir c:\windows\system32\nvvsvc.exe", shell = True)
Выдает ошибку:
Файл не найден
Traceback (последний последний вызов):
Файл ‹ stdin ›, строка 1, в ‹ модуле ›
Файл C:\Python27\lib\subprocess.py, строка 544, в check_output
поднять CalledProcessError (реткод, cmd, вывод = вывод)
subprocess.CalledProcessError: Команда «dir c:\windows\system32\nvvsvc.exe» вернула ненулевой статус выхода 1
Я пробовал много вариантов, в том числе пытался даже заставить cacls.exe признать, что там есть файл. Однако, когда я выхожу из экземпляра python (exit()) и выполняю dir c:\windows\system32\nvvsvc.exe
, он возвращает, что там действительно есть файл.
Аналогичный тест с использованием calc.exe вместо этого позволяет мне просматривать его и хэшировать как внутри Python.
Я использую Python 2.7. Я попытался запустить python с правами администратора (запуск от имени администратора для командной строки), но это ничего не меняет. Похоже, что при запуске изнутри python произошли некоторые изменения в привилегиях, поскольку файловая система по существу делает вид, что файл не существует для python.
Для справки, владельцем рассматриваемого файла (есть и другие подобные) является система, а cacls в файле позволяют читать его от пользователя, администратора и системы.