Python实现文件只读属性的设置与取消

 更新时间:2023年07月17日 16:50:00   作者:Commas.KM  
这篇文章主要为大家详细介绍了Python如何实现设置文件只读与取消文件只读的功能,文中的示例代码讲解详细,感兴趣的小伙伴可以了解一下

一、使用os.chmod来设置文件只读属性

我们可以使用 os 模块中的chmod(全程:change mode)来设置或取消文件的只读属性。

完整语法:

def chmod(path: FileDescriptorOrPath, mode: int,*, dir_fd: int | None = None, follow_symlinks: bool = True) -> None: ...

常见语法:

def chmod(path: FileDescriptorOrPath, mode: int)
  • path:需要修改只读属性的文件路径或目录路径;
  • mode:权限代码,由八进制数字(octat)组成。如0o444表示只读的权限,0o666表示“读写”的权限,0o777表示读写执行的权限等等。

使用方法:

  • 引入os模块;
  • 使用os.chmod()方法去设置或取消文件的只读属性;
  • 将文件路径和权限代码传递os.chmod()方法

示例如下:

import os
# set file as read-only
# 4 = read(4)
os.chmod('readonly.txt', 0o444)
# cancel read-only property
# 6 = read(4) + write(2)
os.chmod('readonly.txt', 0o666)
# set file as read-write-execute
# 7 = read(4) + write(2) + execute(1)
os.chmod('readonly.txt', 0o777)

当然,您也可以这样写:

import os,stat
# (1)set file as read-only
# 4 = read(4)
# os.chmod('readonly.txt', 0o444)
os.chmod('readonly.txt', stat.S_IRUSR + stat.S_IRGRP + stat.S_IROTH)
# (2)cancel read-only property
# 6 = read(4) + write(2)
# os.chmod('readonly.txt', 0o666)
os.chmod('readonly.txt', stat.S_IWUSR + stat.S_IRUSR + stat.S_IWGRP + stat.S_IRGRP + stat.S_IWOTH + stat.S_IROTH)
# (3)set file as read-write-execute
# 7 = read(4) + write(2) + execute(1)
# os.chmod('readonly.txt', 0o777)
os.chmod('readonly.txt', stat.S_IXUSR + stat.S_IWUSR + stat.S_IRUSR + stat.S_IXGRP + stat.S_IWGRP + stat.S_IRGRP + stat.S_IXOTH + stat.S_IWOTH + stat.S_IROTH)
# 或
os.chmod('readonly.txt', stat.S_IRWXU + stat.S_IRWXG + stat.S_IRWXO)
# 我们可以打印出来看看
# 0o444
print(oct(stat.S_IRUSR + stat.S_IRGRP + stat.S_IROTH))
# 0o666
print(oct(stat.S_IWUSR + stat.S_IRUSR + stat.S_IWGRP + stat.S_IRGRP + stat.S_IWOTH + stat.S_IROTH))
# 0o777
print(oct(stat.S_IXUSR + stat.S_IWUSR + stat.S_IRUSR + stat.S_IXGRP + stat.S_IWGRP + stat.S_IRGRP + stat.S_IXOTH + stat.S_IWOTH + stat.S_IROTH))
print(oct(stat.S_IRWXU + stat.S_IRWXG + stat.S_IRWXO))

结果输出:

0o444
0o666
0o777
0o777

二、关于权限代码mode的解读

如上图所示,文件调用权限分为三级 :

  • 文件所有者(Owner/Users)
  • 用户组用户(Group Users)
  • 其它用户(Other Users)

其中,每级权限代码范围:1~7。

符号含义:

  • R:读,Read的缩写,八进制值为 4;
  • W:写,Write的缩写,八进制值为 2;
  • X:执行,Execute的缩写,八进制值为 1;

如:0o444表示只读的权限,0o666表示“读写”的权限,0o777表示读写执行的权限等等;

文件所有者(User)的权限:

限代码英文名说明
stat.S_IXUSRExecute User拥有者具有执行权限0o100
stat.S_IWUSRWrite User拥有者具有写权限0o200
stat.S_IRUSRRead User拥有者具有读权限0o400
stat.S_IRWXURead Write Execute User拥有者有全部权限(权限掩码)0o700

文件用户组(Group)的权限:

权限代码英文名说明
stat.S_IXGRPExecute Group组用户有执行权限0o010
stat.S_IWGRPWrite Group组用户有写权限0o020
stat.S_IRGRPRead Group组用户有读权限0o040
stat.S_IRWXGRead Write Execute Group组用户有全部权限(权限掩码)0o070

其它:

权限代码说明
stat.S_ISVTX目录里文件目录只有拥有者才可删除更改0o1000
stat.S_ISGID执行此文件其进程有效组为文件所在组0o2000
stat.S_ISUID执行此文件其进程有效用户为文件所有者0o4000
stat.S_IREADwindows下设为只读
stat.S_IWRITEwindows下取消只读

到此这篇关于Python实现文件只读属性的设置与取消的文章就介绍到这了,更多相关Python文件只读内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Python实现B站UP主小助手详解开发流程

    Python实现B站UP主小助手详解开发流程

    功能是不是还挺丰富的,从写第一行代码到完成也就花了两天不到的时间,这也证明了使用python开发的高效率,下面来说说这些功能开发中我遇到了哪些问题,我又是如何解决的
    2022-02-02
  • Linux永久修改pip配置源的详细过程

    Linux永久修改pip配置源的详细过程

    默认情况下pip使用的是国外的镜像,在下载的时候速度非常慢,所以需要更换PIP的镜像源,下面这篇文章主要给大家介绍了关于Linux永久修改pip配置源的相关资料,需要的朋友可以参考下
    2024-02-02
  • Python实现获取某天是某个月中的第几周

    Python实现获取某天是某个月中的第几周

    这篇文章主要介绍了Python实现获取某天是某个月中的第几周,本文代码实现获取指定的某天是某个月中的第几周、周一作为一周的开始,需要的朋友可以参考下
    2015-02-02
  • python编程测试电脑开启最大线程数实例代码

    python编程测试电脑开启最大线程数实例代码

    这篇文章主要介绍了python编程测试电脑开启最大线程数实例代码,分享了相关代码示例,小编觉得还是挺不错的,具有一定借鉴价值,需要的朋友可以参考下
    2018-02-02
  • 浅谈Python中的函数(def)及参数传递操作

    浅谈Python中的函数(def)及参数传递操作

    这篇文章主要介绍了浅谈Python中的函数(def)及参数传递操作,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-05-05
  • Python随机数函数代码实例解析

    Python随机数函数代码实例解析

    这篇文章主要介绍了Python随机数函数代码实例解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-02-02
  • Python Flask入门之模板

    Python Flask入门之模板

    今天小编就为大家分享一篇Python Flask模板的入门教程,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-11-11
  • Python 任务自动化工具nox 的配置与 API详情

    Python 任务自动化工具nox 的配置与 API详情

    这篇文章主要介绍了Python 任务自动化工具nox 的配置与 API详情,Nox 会话是通过被@nox.session装饰的标准 Python 函数来配置的,具体详情下文相关介绍需要的小伙伴可以参考一下
    2022-07-07
  • keras处理欠拟合和过拟合的实例讲解

    keras处理欠拟合和过拟合的实例讲解

    这篇文章主要介绍了keras处理欠拟合和过拟合的实例讲解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-05-05
  • Python读取和处理文件后缀为.sqlite的数据文件(实例讲解)

    Python读取和处理文件后缀为.sqlite的数据文件(实例讲解)

    下面小编就为大家带来一篇Python读取和处理文件后缀为.sqlite的数据文件(实例讲解)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-06-06

最新评论