【发布时间】:2021-05-08 04:22:23
【问题描述】:
我有这个代码:
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 目录本身或任何其他文件)上尝试此操作,它总是返回 True。
如果文件不存在,则返回 False。
SO:True 在任何现有文件上。即使没有写访问权限。
我在 Internet 上找不到任何关于此的内容。
有人知道为什么会出现这个问题吗?
编辑: 当然我的脚本不是以管理员身份运行的。
不管我是测试读还是写访问。
【问题讨论】:
-
根据documentation for
os.access:“注意:I/O 操作可能会失败,即使 access() 指示它们会成功,特别是对于可能具有超出通常 POSIX 权限的权限语义的网络文件系统上的操作位模型。” -
您正在检查写入权限,但正在打开读取权限。对吗?
-
不,我不能读写,我没有权限,但是 os.access 返回 True,
-
不管我是测试读还是写访问
-
是的,我阅读了文档。这不是网络文件,它对我计算机上的任何文件都返回 True,我递归地对其进行了测试。