access() 方法使用真正的 uid/gid 测试访问路径。大多数的操作将使用有效的uid/gid,因此这个程序可以在一个 suid/sgid 环境可以用于测试调用用户是否拥有指定路径访问权限。允许访问则返回TRUE,否则返回False。
语法
以下是 access() 方法的语法:
os.access(path, mode)
参数
-
path -- 这是对于存在或任何访问进行测试的路径
-
mode -- F_OK值是用于测试路径的存在,或者它可以是在包含或一种或多种R_OK,W_OK,X_OK测试权限。
- os.F_OK: 值作为模式参数传到 access() 测试来路径是否存在
- os.R_OK: 值作为模式参数传到 access() 测试来路径是否可读
- os.W_OK 值作为模式参数传到 access() 测试来路径是否可写
- os.X_OK 值作为模式参数传到 access() 测试来路径是否可执行
返回值
此方法如果允许访问则返回 True ,否则返回 False
示例
下面的示例说明 access() 方法的使用。
#!/usr/bin/python3 import os, sys # Assuming /tmp/foo.txt exists and has read/write permissions. ret = os.access("/tmp/foo.txt", os.F_OK) print ("F_OK - return value %s"% ret) ret = os.access("/tmp/foo.txt", os.R_OK) print ("R_OK - return value %s"% ret) ret = os.access("/tmp/foo.txt", os.W_OK) print ("W_OK - return value %s"% ret) ret = os.access("/tmp/foo.txt", os.X_OK) print ("X_OK - return value %s"% ret)
当我们运行上面的程序,它会产生以下结果:
F_OK - return value True R_OK - return value True W_OK - return value True X_OK - return value False