Python是一门非常强大的程序设计语言,在文件处理方面也有很好的库和函数。在Python中使用递归和walk()遍历目录文件是一种常见的方法,可以在文件管理、数据抓取等场合中使用。
一、什么是递归和walk函数
递归
递归是指函数自身调用自身,通过不断地自我调用来解决问题的一种思想。在Python中,可以轻松实现递归函数的编写,例如:
def factorial(n):
if n == 0:
return 1
else:
return n * factorial(n-1)
这个函数用来计算阶乘,基于递归思想,如果n大于0,则调用函数自身,并将n-1传入函数生成新的运算。
walk()
walk()函数是os模块提供的一个目录遍历函数,可以遍历指定的目录和子目录,返回一个三元组(root, dirs, files),其中root是指当前遍历的目录路径,dirs是子目录名称集合,files是指当前目录下的文件名称集合。示例代码如下:
import os
file_path = os.walk(r'C:\Users\Administrator\Desktop') # 将目录路径传递给walk函数遍历
for root, dirs, files in file_path:
print(root) # 输出当前遍历的目录路径
print(dirs) # 输出子目录名称
print(files) # 输出当前目录下的文件名称
二、使用递归和walk()遍历目录文件
- 递归遍历并输出指定目录下所有文件的路径
下面代码中实现递归遍历并输出指定目录下所有文件的路径:
import os
def print_file_path(file_dir):
for root, dirs, files in os.walk(file_dir):
for file in files:
print(os.path.join(root, file)) # 输出文件路径
for dir in dirs:
print_file_path(os.path.join(root, dir)) # 递归遍历目录
print_file_path(r'C:\Users\Administrator\Desktop') # 下面是调用示例的代码
- 递归查找指定目录下的所有以.txt结尾的文件,并将文件路径存入txt文本中
下面代码中实现递归查找指定目录下的所有以.txt结尾的文件,并将文件路径存入txt文本中:
import os
def search_file(file_dir, file_type):
with open(r'C:\Users\Administrator\Desktop\result.txt', mode='a', encoding='utf-8') as f:
for root, dirs, files in os.walk(file_dir):
for file in files:
if file.endswith(file_type):
file_path = os.path.join(root, file)
f.write(file_path+'\n') # 将文件路径写入txt文本
for dir in dirs:
search_file(os.path.join(root, dir), file_type) # 递归遍历目录
search_file(r'C:\Users\Administrator\Desktop', '.txt') # 下面是调用示例的代码
以上是两个简单的使用递归和walk()遍历目录文件的方法示例,您可以根据自己的需求进行功能解读和代码编写,相信这些篇章能对你在此方面的研究工作有所帮助。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Python利用递归和walk()遍历目录文件的方法示例 - Python技术站