我有这样的代码:
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…除了你的代码