我正在尝试读取文件并生成所述文件的哈希值。在大多数情况下,这进展顺利。但是,有一些文件我无法处理。例如:
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)
产生错误:
文件未找到
回溯(最近一次通话最后):
文件“<stdin>”,第 1 行,在 <module> 中
文件“C:\Python27\lib\subprocess.py”,第 544 行,在 check_output 中
引发 CalledProcessError(retcode, cmd, output=output)
subprocess.CalledProcessError:命令 'dir c:\windows\system32\nvvsvc.exe' 返回非零退出状态 1
我尝试了许多变体,包括试图让 cacls.exe 承认那里有一个文件。但是,当我退出 python 实例 (exit()) 并执行 adir c:\windows\system32\nvvsvc.exe
时,它返回确实存在一个文件。
使用 calc.exe 进行的类似测试允许我从 python 内部查看它并对其进行哈希处理。
我正在运行 Python 2.7。我尝试使用管理权限启动 python(以管理员身份运行命令提示符),但这并没有改变任何东西。从 python 内部运行时,权限似乎发生了一些变化,以至于文件系统基本上假装该文件对 python 不存在。
作为参考,有问题的文件的所有者(还有其他类似的)是系统,文件上的 cacls 允许从用户、管理员和系统读取它。