一、什么是Walkdir方法
在Python开发中,经常需要去查找某个文件,特别是在某个文件夹下递归查找。Python中的os模块提供了一个非常方便的方法——Walkdir方法。Walkdir方法可遍历一个目录树,从顶部到底部,为每个目录返回一个3元组,包括当前文件夹、当前文件夹中的子文件夹以及当前文件夹中的文件。使用Walkdir方法,我们可以快速地找到指定目录下的文件,或者查找包含特定字符串的文件。
二、Walkdir方法的使用
Walkdir方法的基本语法如下:
for root, dirs, files in os.walk(top, topdown=True, onerror=None, followlinks=False):
# 遍历目录树,返回目录路径、子目录列表和文件名列表。
# root: 此次遍历的目录
# dirs: 此次遍历的目录下的子目录
# files: 此次遍历的目录下的文件
其中,参数 top为起始目录的路径(默认为当前目录),topdown表示是否按照自顶向下(默认)的顺序遍历文件夹,onerror表示如果访问目录时出错,所执行的函数,followlinks表示是否跟踪符号链接(默认为False)。当函数提供一个目录的名称时,它生成一个由3个元素组成的元组。
三、遍历文件夹查找指定文件
Walkdir方法可用于递归遍历文件夹,查找指定文件。下面是一个简单的例子,用来查找指定目录(本例为项目根目录下的files目录)内所有扩展名为txt的文件:
import os
txt_files = []
for root, dirs, files in os.walk("./files"):
for file in files:
if file.endswith(".txt"):
txt_files.append(os.path.join(root, file))
print(txt_files)
在这个例子中,我们逐个检查遍历得到的所有文件,如果文件名以.txt为结尾,则将文件的完整路径添加到txt_files数组中。最后输出数组中包含的所有txt文件。需要注意的是,在将文件路径加入到列表中时,需要使用 os.path.join() 方法将文件夹名和文件名拼接成完整路径。
四、查找包含特定字符串的文件
除了查找指定类型的文件外,Walkdir方法还可用于查找包含特定字符串的文件。以下是一个简单的例子,用来查找指定目录(本例为项目根目录下的files目录)内所有文件中包含特定字符串“hello world”的文件:
import os
search_str = "hello world"
for root, dirs, files in os.walk("./files"):
for file in files:
file_path = os.path.join(root, file)
with open(file_path, 'r') as file:
if search_str in file.read():
print(file_path)
在这个例子中,我们使用 with open() 打开每个文件,通过读取文件内容的方式来判断是否包含了特定字符串。需要注意的是,在使用完一个文件后,一定要记得关闭文件,以释放系统资源。
五、总结
在Python开发中,Walkdir方法可用于高效地查找指定类型的文件或者包含特定字符串的文件。需要注意的是,在使用Walkdir方法时,要注意程序执行期间的系统资源使用情况,并及时地关闭文件。
原创文章,作者:TYXAX,如若转载,请注明出处:https://www.506064.com/n/331239.html
微信扫一扫
支付宝扫一扫