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

# 判断读权限

os.access(, os.R_OK)

# 判断写权限

os.access(, os.W_OK)

# 判断执行权限

os.access(, os.X_OK)

# 判断读、写、执行权限

os.access(, 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)

)

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

python查看文件夹文件的所有权限,Python判断某个用户对某个文件的权限相关推荐

  1. Python 连接FTP服务器并实现文件夹下载实例演示,python区分ftp目录下文件和文件夹方法,ftp目录下包含中文名问题处理

    Python 连接 FTP 服务器并实现文件夹下载实例演示 第一章:连接 FTP 服务器并实现文件夹下载 ① 连接 FTP 服务器 ② 进入指定目录并显示文件信息 ③ 区分文件和文件夹名 ④ 文件夹名 ...

  2. python获取文件夹大小_S3 API for python–创建bucket文件夹统计文件夹大小

    最近一直在跟S3打交道,但是苦于java不会,python懂一点,API这个东东经常听也知道是啥,但是没有实际根据API文档去进行相关开发的经历,所以前期一直很忐忑,都是找别人帮忙写好特定功能的程序, ...

  3. python怎么创建文件夹视频_怎么用python创建文件夹

    Python中创建文件夹的方法:import os def mkdir(path): folder = os.path.exists(path) if not folder:              ...

  4. 【批量改文件夹中的图片名称-python】

    批量改文件夹中的图片名称-python(记录) 目的 最近在制作零件数据集标注时,发现在摄像机中拍摄的图片名称是乱码的,不便于进行数据标注,所以写下这段代码,以便日后再次使用. 转换之前图片文件夹中的 ...

  5. linux给普通用户赋予scp权限,关于linux新建用户并赋予文件夹权限和scp权限的问题...

    当前用户是aaa,新建用户bbb: $adduser bbb 赋予sudo权限(即把用户bbb添加到sudo组): $usermod -a -G sudo bbb 切换到bbb: $su - bbb ...

  6. Python 实现office单个文件或整个文件夹(word,ppt,excel)转换成PDF文件,并获取PDF文件页数

    Python 实现office单个文件或整个文件夹(word,ppt,excel)转换成PDF文件,并获取PDF文件页数 文件夹中获取需要转换的文件数,将其全部转换或可单独转换单个文件,并获取转成PD ...

  7. android 短信数据库在哪个文件夹,安卓手机的短信备份后存到了哪个文件夹下

    打开备份短信的方法: 1.通过电脑找回手机短信内容的最基本思路,即将保存手机短信容的数据库文件传输到电信上,用相关手机信看工具进找回,对此需要借助第三方ROOt工获取手机ROOT权限. 2.并非所有手 ...

  8. 2021-12-09把文件夹1中的与文件夹2里同名图片删除或者保存至另一个文件夹

    如果文件夹1(大)的里面包含了与文件夹2(小)的同名图片: # !/usr/bin/env python # encoding: utf-8import os import glob from PIL ...

  9. 手机删除.android_secure文件夹后只能接电话了,关于安卓手机里的文件夹及其由来,哪些可删哪些不可删,注意了!...

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 很多手机用户都不知道手机上的一些文件夹是干什么的.刚才碰巧见到这个东西,觉得很有必要与大家一起分享!! 1..android_secure 是官方app2 ...

  10. c盘python27文件夹可以删除嘛_告诉你C盘里的文件夹哪个能删

    1 Documents and Settings是什么文件?答案: 是系统用户设置文件夹,包括各个用户的文档.收藏夹.上网浏览信息.配置文件等. 补:这里面的东西不要随便删除,这保存着所有用户的文档和 ...

最新文章

  1. python条形图一直长_条形图的坐标轴标签过长,怎么优化更美观呢?
  2. 每日程序C语言34-利用指针将输入的三个数排序
  3. 关系数据库——并发控制
  4. SpringSecurity框架【详解】
  5. java 取消引用_java – 如何取消方法引用谓词
  6. C语言-顺序栈的基本操作
  7. 寻找隐藏在CloudFlare和Tor后的真实IP
  8. WorldFirst澳元收款账户上线,人民币提现当天到账!
  9. 天刀霸王枪服务器怎么维护了,1月31日服务器例行维护公告(已完成)
  10. uniapp技术应用,以及案列讲解
  11. 找自幂数的逐步优化算法
  12. 计算机编程玫瑰花,c语言实现玫瑰花的方法
  13. reverse()函数
  14. HTTP中常见的各种状态码详解及解决方案
  15. 人脸识别60年:欧盟通用数据保护条例真的算“史上最严”吗
  16. 神经性脚臭案例整理(五)
  17. WKT、SRID、EPSG概念
  18. 【机器学习】详解 RNN
  19. CSS栅格布局(Grid)
  20. exdark数据集论文阅读笔记

热门文章

  1. java解非线性方程组_Scipy - 非线性方程组的所有解
  2. 干货丨你知道Python中a += b和a = a + b的结果是不一样的吗?
  3. python之请求报文对比(假定最多二维字典)
  4. drcom宽带认证登录超时_开发SSO单点登录需要注意的问题
  5. php sqlserver jdbc,jdbc sqlserver 分页
  6. Source Insight checking for modified files 卡顿(Reload externally modified files automatically取消)(未解决)
  7. opencv python cv2.imdecode()函数报错 :TypeError: Expected cv::UMat for argument 'buf'
  8. 王道计算机考研 数据结构 (查找-下)
  9. php 实验室管理系统,生物信息实验室管理系统-Metalims安装
  10. RocketMQ源码:NameSrv启动全过程详解