Python第二十二天 stat模块 os.chmod方法 os.stat方法 pwd grp模块 os.access()方法

Python第二十二天 stat模块 os.chmod方法 os.stat方法 pwd grp模块 os.access()方法

stat模块描述了os.stat(filename)返回的文件属性列表中各值的意义,根据stat模块读取os.stat()中的值的意思
简单来说,os.stat是将文件的相关属性读出来,然后用stat模块来处理

os.stat

返回一个类似字典对象(stat_result对象,包含10个元素),结果类型是posix.stat_result

stat(path) -> stat result

获取stat结果

stat模块

import stat

stat 模块定义用来测试文件类型的函数
stat.S_ISDIR(mode)
判断文件是不是一个目录。

stat.S_ISCHR(mode)
判断文件是不是一个字符型设备。

stat.S_ISBLK(mode)
判断文件是不是一个块设备。

stat.S_ISREG(mode)
判断mode是不是来自一个普通文件。

stat.S_ISFIFO(mode)
判断mode是不是来自一个FIFO(如:具名管道)

stat.S_ISLNK(mode)
判断mode是不是来自一个符号链接。

stat.S_ISSOCK(mode)
判断mode是不是来自一个套接字。

stat.S_IMODE(mode)

返回文件权限的chmod格式。

stat.S_IFMT(mode)
返回文件的类型

例子
st = os.stat(‘/tmp/aa.py’).st_mode
oct(stat.S_IMODE(st))
‘0755’

stat 模块的标识符,可以用在os.chmod()方法中:

stat.S_ISUID: Set user ID on execution. 不常用
stat.S_ISGID: Set group ID on execution. 不常用
stat.S_ENFMT: Record locking enforced. 不常用
stat.S_ISVTX: Save text image after execution. 在执行之后保存文字和图片
stat.S_IREAD: Read by owner. 对于拥有者读的权限
stat.S_IWRITE: Write by owner. 对于拥有者写的权限
stat.S_IEXEC: Execute by owner. 对于拥有者执行的权限
stat.S_IRWXU: Read, write, and execute by owner. 对于拥有者读写执行的权限
stat.S_IRUSR: Read by owner. 对于拥有者读的权限
stat.S_IWUSR: Write by owner. 对于拥有者写的权限
stat.S_IXUSR: Execute by owner. 对于拥有者执行的权限
stat.S_IRWXG: Read, write, and execute by group. 对于同组的人读写执行的权限
stat.S_IRGRP: Read by group. 对于同组读的权限
stat.S_IWGRP: Write by group. 对于同组写的权限
stat.S_IXGRP: Execute by group. 对于同组执行的权限
stat.S_IRWXO: Read, write, and execute by others. 对于其他组读写执行的权限
stat.S_IROTH: Read by others. 对于其他组读的权限
stat.S_IWOTH: Write by others. 对于其他组写的权限
stat.S_IXOTH: Execute by others. 对于其他组执行的权限

os.access() 方法

这个方法一般只用来做判断

os.access() 方法使用当前的uid/gid尝试访问路径。大部分操作使用有效的 uid/gid, 因此运行环境可以在 suid/sgid 环境尝试

os.access(path, mode);
参数
path — 要用来检测是否有访问权限的路径。
mode — mode为F_OK,测试存在的路径,或者它可以是包含R_OK, W_OK和X_OK或者R_OK, W_OK和X_OK其中之一或者更多。
os.F_OK: 作为access()的mode参数,测试path是否存在。
os.R_OK: 包含在access()的mode参数中 , 测试path是否可读。
os.W_OK 包含在access()的mode参数中 , 测试path是否可写。
os.X_OK 包含在access()的mode参数中 ,测试path是否可执行

例子1

例子2

os.chmod() 方法

os.chmod() 方法用于更改文件或目录的权限。
语法
chmod()方法语法格式如下,该方法没有返回值:
os.chmod(path, mode)

参数
path — 文件名路径或目录路径。
flags — 可用以下选项按位或进行权限叠加。

stat.S_IXOTH: 其他用户有执行权0o001
stat.S_IWOTH: 其他用户有写权限0o002
stat.S_IROTH: 其他用户有读权限0o004
stat.S_IRWXO: 其他用户有全部权限(权限掩码)0o007
stat.S_IXGRP: 组用户有执行权限0o010
stat.S_IWGRP: 组用户有写权限0o020
stat.S_IRGRP: 组用户有读权限0o040
stat.S_IRWXG: 组用户有全部权限(权限掩码)0o070
stat.S_IXUSR: 拥有者具有执行权限0o100
stat.S_IWUSR: 拥有者具有写权限0o200
stat.S_IRUSR: 拥有者具有读权限0o400
stat.S_IRWXU: 拥有者有全部权限(权限掩码)0o700
stat.S_ISVTX: 目录里文件目录只有拥有者才可删除更改0o1000
stat.S_ISGID: 执行此文件其进程有效组为文件所在组0o2000
stat.S_ISUID: 执行此文件其进程有效用户为文件所有者0o4000
stat.S_IREAD: windows下设为只读
stat.S_IWRITE: windows下取消只读

使用os.chmod()执行chmod +x

pwd模块和grp模块

pwd模块,提供了一个Unix 密码数据库(/etc/passwd文件)的接口,这个数据库包含本地机器用户账户信息。

返回对应uid的用户信息

返回对应name的用户信息

获取返回结果中的uid

返回所有用户信息

返回所有用户信息

grp模块,提供了一个Unix 用户组/group(/etc/group文件)数据库的接口

返回对应gid的组信息

返回对应group name的组信息

返回所有组信息

Original: https://www.cnblogs.com/lyhabc/p/7572062.html
Author: 桦仔
Title: Python第二十二天 stat模块 os.chmod方法 os.stat方法 pwd grp模块 os.access()方法

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/590823/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球