Python3 OS模块中的文件/目录方法说明一

一. 简介

OS模块是 Python标准库中的一个重要模块,提供了与操作系统进行交互的功能。它允许你执行诸如文件和目录操作、环境变量管理、进程管理等任务。OS模块封装了许多系统调用,使得 Python程序可以跨平台运行。

接下来简单学习一下 OS模块中文件、目录的操作方法:os.access() 方法、os.chdir() 方法、os.chmod(path, mode)方法、os.chroot(path)方法、os.close(fd)方法、os.closerange(fd_low, fd_high)方法。

二. Python3 OS模块中的文件/目录方法

1. os.access() 方法、os.chdir() 方法

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

os.access() 方法的语法格式如下:

os.access(path, mode);

参数:

path:  要用来检测是否有访问权限的路径。

mode:  mode模式,不同的值测试不同的功能。

  • os.F_OK: 作为access()的mode参数,测试path是否存在。
  • os.R_OK: 包含在access()的mode参数中 , 测试path是否可读。
  • os.W_OK 包含在access()的mode参数中 , 测试path是否可写。
  • os.X_OK 包含在access()的mode参数中 ,测试path是否可执行。

举例如下:

#!/usr/bin/env python3

import os, sys

#假定 file.txt文件存在,并有读写权限
ret = os.access("file.txt", os.F_OK)
print("F_OK--返回值 %s"% ret)
ret = os.access("file.txt", os.R_OK)
print ("R_OK - 返回值 %s"% ret)
ret = os.access("file.txt", os.W_OK)
print ("W_OK - 返回值 %s"% ret)
ret = os.access("file.txt", os.X_OK)
print ("X_OK - 返回值 %s"% ret)

运行后结果如下:

F_OK--返回值 True
R_OK - 返回值 True
W_OK - 返回值 True
X_OK - 返回值 False

os.chdir() 方法用于改变当前工作目录到指定的路径。

chdir()方法语法格式如下:

os.chdir(path)

参数:path -- 要切换到的新路径。

举例如下:

#!/usr/bin/env python3

import os, sys

path = "/tmp"

#查看当前工作目录
ret = os.getcwd()
print("当前工作目录: %s"% ret)

#修改当前工作目录
os.chdir(path)

ret = os.getcwd()
print("目录修改成功 %s" % ret)

运行后结果如下:

当前工作目录: /home/wangtian/Code_Learns/python_codes
目录修改成功 /tmp
2. os.chmod(path, mode)方法

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下取消只读
    #!/usr/bin/env python3
    
    import os, sys, stat
    
    # 假定file.txt文件存在,设置文件可以通过用户组执行
    os.chmod("file.txt", stat.S_IXGRP)
    # 设置文件可以被其他用户写入
    os.chmod("file.txt", stat.S_IWOTH)
    print ("修改成功!!")

    os.chown(path, uid, gid)方法

    os.chown() 方法用于更改文件所有者,如果不修改可以设置为 -1, 你需要超级用户权限来执行权限修改操作。

    只支持在 Unix 下使用。

    chown()方法语法格式如下:

    os.chown(path, uid, gid);

    参数

    • path -- 设置权限的文件路径

    • uid -- 所属用户 ID

    • gid -- 所属用户组 ID

    # 假定 file.txt 文件存在.
    # 设置所有者 ID 为 100
    os.chown("file.txt", 100, -1)

    运行时需要 root权限。

    3. os.chroot(path)方法、os.close(fd)方法、os.closerange(fd_low, fd_high)方法

    os.chroot() 方法用于更改当前进程的根目录为指定的目录,使用该函数需要管理员权限。在 unix 中有效。

    chroot()方法语法格式如下:

    os.chroot(path);

    path -- 要设置为根目录的目录。

    举例如下:

    #!/usr/bin/env python3
    import os, sys, stat
    
    # 设置根目录为 /tmp
    os.chroot("/tmp")

    运行时需要 root权限。

    close()方法语法格式如下(其中,fd -- 文件描述符):

    os.close(fd);

    os.closerange() 方法用于关闭所有文件描述符 fd

    closerange()方法语法格式如下:

    os.closerange(fd_low, fd_high);

    关闭所有文件描述符 fd,从 fd_low (包含) 到 fd_high (不包含), 错误会忽略。

    参数

    • fd_low -- 最小文件描述符

    • fd_high -- 最大文件描述符

    该方法类似于:

    for fd my_range(fd_low, fd_high):
        try:
            os.close(fd)
        except OSError:
            pass

    举例如下:

    #!/usr/bin/env python3
    
    import os, sys
    
    fd = os.open("file.txt", os.O_RDWR|os.O_CREAT)
    os.write(fd, b'Python is a language')
    os.closerange(fd, fd)

    接下来继续学习 os模块目录与文件的操作方法。

    评论
    添加红包

    请填写红包祝福语或标题

    红包个数最小为10个

    红包金额最低5元

    当前余额3.43前往充值 >
    需支付:10.00
    成就一亿技术人!
    领取后你会自动成为博主和红包主的粉丝 规则
    hope_wisdom
    发出的红包
    实付
    使用余额支付
    点击重新获取
    扫码支付
    钱包余额 0

    抵扣说明:

    1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
    2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

    余额充值