操作系统.access返回True,但文件不可写



我有这样的代码:

import os
print(os.access("tst.txt", os.R_OK))
open("tst.txt", "rb")
# File Permissions:
# Owner: Trusted Installer
# Administrators and my user: deny all permissions

os.access返回True,但打开文件会引发PermissionError异常。

如果我在另一个文件(如cmd.exe, notepad.exe, System32 dir本身或任何其他文件)上尝试此操作,它总是返回True。

如果文件不存在,则返回False。

SO:True对任何现有文件。

我在网上找不到关于这个的任何信息。

有人知道为什么会出现这个问题吗?

编辑:当然,我的脚本不是以管理员身份运行的。

无论我是否测试读或写访问

看起来os.access不检查Windows上的用户权限,它只检查是否设置了只读标志。

注意os。access不检查Windows上的文件安全性。W_OK只检查只读标志。因此使用try…except是唯一的可能,如果你在Windows上,没有使用Windows安全API。

从http://net-informations.com/python/file/exists.htm

在这种情况下,您可能需要包装一个try…除了你的代码

相关内容

最新更新