【发布时间】:2019-09-26 20:20:20
【问题描述】:
我正在用 python 编写一个 shell,需要确定一个文件是否对当前用户是只读的。我如何解释给定用户的os.stat(path)[0]。
这在 linux 上并非易事,您可能会因为用户组或其他人而获得写权限。然后是用户在具有组写入的文件组中的用户的概念,但它是具有只读权限的所有者。
我需要它是跨平台的,所以它可以在 Mac Linux 和 Windows 上运行。
【问题讨论】:
-
@jww,我通过编辑改进了这个问题。问得不好
-
对于Linux和macOS等POSIX系统,使用
os.access(filename, os.W_OK)。这应该考虑文件权限和文件属性(例如不变性)。在 Windows 中,os.access仅检查只读文件属性。在 Windows 中检查写入权限的最简单方法是通过CreateFileW(通过 ctypes 或 PyWin32 的 win32file)打开文件,请求通用写入权限并共享读取、写入和删除权限。
标签: python linux python-3.x windows macos