✍37 os.chmod( )修改文件权限

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 可以使用, 没有深究

image-20210906105855805

修改文件的权限,我之前想要递归的修改文件的权限, 思考着循环, 但是不必

直接使用 os.system 执行系统命令就好了

image-20210906110020379

OS.mkdir 和 os.makedirs 的区别

  • os.mkdir 只创建最后一级目录, 前面的路径不存在会报错
  • os.makedirs 递归的创建目录
原文地址:https://www.cnblogs.com/songhaixing/p/15607048.html