python文件OS库的常用函数

本文介绍了Python的os库,详细讲解了os.access()、os.chdir()、os.chmod()、os.open()、os.write()以及os.walk()等函数的用法和参数。通过示例代码展示了如何使用这些函数进行文件和目录的操作,帮助读者掌握Python操作文件系统的技能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

我最开始是在ai studio平台的一堂python学习营里接触os库函数的操作。如下所示

在这里插入代码片
#导入OS模块
import os
#待搜索的目录路径
path = "Day1-homework"
#待搜索的名称
filename = "2020"
#定义保存结果的数组
result = []

def findfiles():
    #在这里写下您的查找文件代码吧!
    for root, dirs, files in os.walk(path):
        for f in files:
            res = os.path.join(root,f)
            if filename in res:
                result.append(res)

    for key,vel in enumerate(result):
        print([key+1,vel])
    

if __name__ == '__main__':
    findfiles()

执行情况
[1, ‘Day1-homework/18/182020.doc’]
[2, ‘Day1-homework/4/22/04:22:2020.txt’]
[3, ‘Day1-homework/26/26/new2020.txt’]

该段代码的实现就是遍历指定文件夹,然后打印包含规定字符串’2020’的文件名

一年多没有看代码了,虽然短短几行代码跑起来正常运营还是有点小激动。想起我大学的时候,学习C语言跑通了一个“hello world”我就以为自己是编程入门高手了。哈哈,不自黑了。编程需要脚踏实地。那我们接下来,仔细聊聊python 的os库吧。

os 模块代表了程序所在的操作系统,主要用于获取程序运行所在操作系统的相关信息。开发者需要详细研究可以参考以下url地址
os模块library

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是否可执行。

在这里插入代码片
ret = os.access("./foo.txt", os.F_OK)
print("F_OK - 返回值 %s"% ret)
ret = os.access("./foo.txt", os.W_OK)
print("W_OK - 返回值 %s"% ret)
ret = os.access("./foo.txt", os.R_OK)
print("R_OK - 返回值 %s"% ret)
ret = os.access("./foo.txt", os.X_OK)
print("X_OK - 返回值 %s"% ret)

执行情况
F_OK - 返回值 True
W_OK - 返回值 True
R_OK - 返回值 True
X_OK - 返回值 False

os.chdir(path)

参数

path – 要切换到的新路径

返回值

如果允许访问返回 True , 否则返回False。

os.chmod(path, mode)

参数

path – 文件名路径或目录路径。

flags – 可用以下选项按位或操作生成, 目录的读权限表示可以获取目录里文件名列表, ,执行权限表示可以把工作目录切换到此目录 ,删除添加目录里的文件必须同时有写和执行权限 ,文件权限以用户id->组id->其它顺序检验,最先匹配的允许或禁止权限被应用。

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.open(file, flags[, mode])

参数

file – 要打开的文件

flags – 该参数可以是以下选项,多个使用 “|” 隔开:

os.O_RDONLY: 以只读的方式打开
os.O_WRONLY: 以只写的方式打开
os.O_RDWR : 以读写的方式打开
os.O_NONBLOCK: 打开时不阻塞
os.O_APPEND: 以追加的方式打开
os.O_CREAT: 创建并打开一个新文件
os.O_TRUNC: 打开一个文件并截断它的长度为零(必须有写权限)
os.O_EXCL: 如果指定的文件存在,返回错误
os.O_SHLOCK: 自动获取共享锁
os.O_EXLOCK: 自动获取独立锁
os.O_DIRECT: 消除或减少缓存效果
os.O_FSYNC : 同步写入
os.O_NOFOLLOW: 不追踪软链接
mode – 类似 chmod()。

返回值

返回新打开文件的描述符

os.write(fd, bytes)

参数

fd – 文件描述符。

bytes – 写入的字符串。

返回值

该方法返回写入的实际位数

在这里插入代码片
# 打开文件
import os, sys
fd = os.open( "foo.txt", os.O_RDWR|os.O_CREAT )

# 写入字符串
os.write(fd,bytes("this is ok",encoding="UTF-8"))

# 关闭文件
os.close( fd )

print("关闭文件成功!!")

注意:python2.X wirte函数是str字符串,python3.X函数是bytes需要编码处理下

os.walk(top[, topdown=True[, οnerrοr=None[, followlinks=False]]])

参数

top – 是你所要遍历的目录的地址, 返回的是一个三元组(root,dirs,files)。

root 所指的是当前正在遍历的这个文件夹的本身的地址
dirs 是一个 list ,内容是该文件夹中所有的目录的名字(不包括子目录)
files 同样是 list , 内容是该文件夹中所有的文件(不包括子目录)
topdown --可选,为 True,则优先遍历 top 目录,否则优先遍历 top 的子目录(默认为开启)。如果 topdown 参数为 True,walk 会遍历top文件夹,与top 文件夹中每一个子目录。

onerror – 可选,需要一个 callable 对象,当 walk 需要异常时,会调用。

followlinks – 可选,如果为 True,则会遍历目录下的快捷方式(linux 下是软连接 symbolic link )实际所指的目录(默认关闭),如果为 False,则优先遍历 top 的子目录。

返回值

返回生成器

代码样例看本文第一段执行代码

关于更多函数

可以参考以下地址
https://www.runoob.com/python/os-file-methods.html
http://kuanghy.github.io/python-os/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值