我正在用Python编写一个Shell,并需要确定当前用户是否对文件只有读取权限。如何根据给定用户解释
在Linux上,这并不容易,因为您可能会因为用户组或其他原因获得写入权限。此外,还存在一个概念,即用户在文件组中具有组写入权限,但是作为所有者仅具有只读权限。
我需要跨平台的解决方案,以便在Mac、Linux和Windows上都可以使用。
os.stat(path)[0]
?在Linux上,这并不容易,因为您可能会因为用户组或其他原因获得写入权限。此外,还存在一个概念,即用户在文件组中具有组写入权限,但是作为所有者仅具有只读权限。
我需要跨平台的解决方案,以便在Mac、Linux和Windows上都可以使用。
os.access(filename, os.W_OK)
。这应该考虑到文件权限和文件属性(例如不可变性)。在Windows中,os.access
仅检查只读文件属性。在Windows中检查写入权限的最简单方法是通过CreateFileW
打开文件(通过ctypes或PyWin32的win32file),请求一般写访问权限并共享读取、写入和删除访问权限。 - Eryk Sun