os.chmod 和 os.lchmod (只支持 unix 下使用)
语法
os.lchmod(path, mode)
参数
- path -- 设置标记的文件路径
- mode -- 可以是以下一个或多个组成,多个使用 "|" 隔开:
- 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下取消只读
- stat.S_IEXEC: Execute by owner.对于拥有者执行的权限
实例
import os, sys
# 打开文件
path = "/var/www/html/foo.txt"
fd = os.open( path, os.O_RDWR|os.O_CREAT )
# 关闭文件
os.close( fd )
# 修改文件权限
# 设置文件可以通过组执行
os.lchmod( path, stat.S_IXGRP)
# 设置文件可以被其他用户写入
os.lchmod("/tmp/foo.txt", stat.S_IWOTH)
print ("修改权限成功!!")
测试
- 测试了下 lchmod 用不了, chmod 可以使用, 没有深究
修改文件的权限,我之前想要递归的修改文件的权限, 思考着循环, 但是不必
直接使用 os.system 执行系统命令就好了
OS.mkdir 和 os.makedirs 的区别
- os.mkdir 只创建最后一级目录, 前面的路径不存在会报错
- os.makedirs 递归的创建目录