Python判断某个用户对某个文件的权限

 更新时间:2016年10月13日 10:05:20   作者:kongxx  
这篇文章主要为大家详细介绍了Python如何判断某个用户对某个文件的权限,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

在Python我们要判断一个文件对当前用户有没有读、写、执行权限,我们通常可以使用os.access函数来实现,比如:

# 判断读权限
os.access(<my file>, os.R_OK)
# 判断写权限
os.access(<my file>, os.W_OK)
# 判断执行权限
os.access(<my file>, os.X_OK)

# 判断读、写、执行权限
os.access(<my file>, os.R_OK | os.W_OK | os.X_OK)

但是如果要判断任意一个指定的用户对某个文件是否有读、写、执行权限,Python中是没有默认实现的,此时我们可以通过下面的代码断来判断

import os
import pwd
import stat
 
def is_readable(cls, path, user):
  user_info = pwd.getpwnam(user)
  uid = user_info.pw_uid
  gid = user_info.pw_gid
  s = os.stat(path)
  mode = s[stat.ST_MODE]
  return (
    ((s[stat.ST_UID] == uid) and (mode & stat.S_IRUSR > 0)) or
    ((s[stat.ST_GID] == gid) and (mode & stat.S_IRGRP > 0)) or
    (mode & stat.S_IROTH > 0)

    )
def is_writable(cls, path, user):
  user_info = pwd.getpwnam(user)
  uid = user_info.pw_uid
  gid = user_info.pw_gid
  s = os.stat(path)
  mode = s[stat.ST_MODE]
  return (
    ((s[stat.ST_UID] == uid) and (mode & stat.S_IWUSR > 0)) or
    ((s[stat.ST_GID] == gid) and (mode & stat.S_IWGRP > 0)) or
    (mode & stat.S_IWOTH > 0)

    )


def is_executable(cls, path, user):
  user_info = pwd.getpwnam(user)
  uid = user_info.pw_uid
  gid = user_info.pw_gid
  s = os.stat(path)
  mode = s[stat.ST_MODE]
  return (
    ((s[stat.ST_UID] == uid) and (mode & stat.S_IXUSR > 0)) or
    ((s[stat.ST_GID] == gid) and (mode & stat.S_IXGRP > 0)) or
    (mode & stat.S_IXOTH > 0)

    )

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • 详解基于pycharm的requests库使用教程

    详解基于pycharm的requests库使用教程

    本文主要介绍了基于pycharm的requests库使用教程,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-01-01
  • Python3字符串学习教程

    Python3字符串学习教程

    这篇文章主要介绍了Python3字符串学习教程,是Python入门学习中的基础知识,需要的朋友可以参考下
    2015-08-08
  • python中的逆序遍历实例

    python中的逆序遍历实例

    今天小编就为大家分享一篇python中的逆序遍历实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-12-12
  • python中尾递归用法实例详解

    python中尾递归用法实例详解

    这篇文章主要介绍了python中尾递归用法,较为详细的分析了尾递归原理与相关使用技巧,非常具有实用价值,需要的朋友可以参考下
    2015-04-04
  • python发送邮件接收邮件示例分享

    python发送邮件接收邮件示例分享

    这篇文章主要介绍了python发送邮件接收邮件示例,大家参考使用吧
    2014-01-01
  • Windows下搭建python开发环境详细步骤

    Windows下搭建python开发环境详细步骤

    这篇文章主要为大家详细介绍了Windows下搭建python开发环境,文中安装步骤介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2016-05-05
  • 在import scipy.misc 后找不到 imsave的解决方案

    在import scipy.misc 后找不到 imsave的解决方案

    这篇文章主要介绍了在import scipy.misc 后找不到 imsave的解决方案,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-05-05
  • python常用内置模块你了解吗

    python常用内置模块你了解吗

    这篇文章主要为大家介绍了python的常用内置模块,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,希望能够给你带来帮助
    2022-01-01
  • PyTorch零基础入门之逻辑斯蒂回归

    PyTorch零基础入门之逻辑斯蒂回归

    PyTorch是一个开源的Python机器学习库,基于Torch,用于自然语言处理等应用程序,它是一个可续计算包,提供两个高级功能:1、具有强大的GPU加速的张量计算(如NumPy)。2、包含自动求导系统的深度神经网络
    2021-10-10
  • pandas DataFrame 根据多列的值做判断,生成新的列值实例

    pandas DataFrame 根据多列的值做判断,生成新的列值实例

    今天小编就为大家分享一篇pandas DataFrame 根据多列的值做判断,生成新的列值实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-05-05

最新评论