1

我正在尝试读取文件并生成所述文件的哈希值。在大多数情况下,这进展顺利。但是,有一些文件我无法处理。例如:

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 允许从用户、管理员和系统读取它。

4

2 回答 2

1

简单的回答!(但不一定很容易找到)关于 IOError,这是因为您不需要转义反斜杠。

如上面的评论所述,第二部分看起来像是权限错误。

于 2012-04-09T05:09:26.153 回答
0

如果这是 64 位系统,请尝试以下操作:

subprocess.check_output(r"c:\windows\SysNative\nvvsvc.exe", shell = True)

这里的关键是“SysNative”

于 2012-12-19T19:18:54.140 回答