python笔记4-遍历文件夹目录os.walk()
前言
如何遍历查找出某个文件夹内所有的子文件呢?并且找出某个后缀的所有文件
walk功能简介
1.os.walk() 方法用于通过在目录树种游走输出在目录中的文件名,向上或者向下。
2.walk()方法语法格式如下:
os.walk(top,topdown=True,onerror=None, followlinks=False)
-
top 根目录下的每一个文件夹(包含它自己), 产生3-元组 (dirpath, dirnames, filenames)【文件夹路径, 文件夹名字, 文件名】。
-
topdown 可选,为True或者没有指定, 一个目录的的3-元组将比它的任何子文件夹的3-元组先产生 (目录自上而下)。如果topdown为 False, 一个目录的3-元组将比它的任何子文件夹的3-元组后产生 (目录自下而上)。
-
onerror 可选,是一个函数; 它调用时有一个参数, 一个OSError实例。报告这错误后,继续walk,或者抛出exception终止walk。
-
followlinks 设置为 true,则通过软链接访问目录。
以上参考文档http://www.runoob.com/python/os-walk.html
遍历文件
1.第一个参数fpath是遍历打印所有的文件路径
1 2 3 4 5 | # coding:utf- 8 import os path = r "D:\test\python2" # 查找文件的路径 for fpath, dirname, fnames in os.walk(path): print(fpath) # 所有的文件夹路径 微信公众号:yoyoketang |
2.第二个参数dirname是遍历打印所有的文件夹名称
1 2 3 4 5 | # coding:utf- 8 import os path = r "D:\test\python2" # 查找文件的路径 for fpath, dirname, fnames in os.walk(path): print(dirname) # 所有的文件名 微信公众号:yoyoketang |
3.第三个参数fnames是遍历打印所有的文件名
1 2 3 4 5 | # coding:utf- 8 import os path = r "D:\test\python2" # 查找文件的路径 for fpath, dirname, fnames in os.walk(path): print(fnames) # 所有的文件名 微信公众号:yoyoketang |
遍历所有的文件
1.遍历查找文件夹内所有的子文件(不包含文件夹)
2.用endswith判断查找后置是.py结尾的
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | # coding:utf- 8 import os def get_files(path= 'D:\\xx' , rule= ".py" ): all = [] for fpathe,dirs,fs in os.walk(path): # os.walk是获取所有的目录 for f in fs: filename = os.path.join(fpathe,f) if filename.endswith(rule): # 判断是否是 "xxx" 结尾 all.append(filename) return all if __name__ == "__main__" : b = get_files(r "D:\test\python2" ) for i in b: print i |
原文:https://www.cnblogs.com/yoyoketang/p/7988687.html
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
· 三行代码完成国际化适配,妙~啊~