首页 > 编程知识 正文

Python递归读取文件夹文件内容

时间:2023-11-21 19:30:51 阅读:290060 作者:LUCB

本文将从多个角度阐述Python递归读取文件夹文件内容的方法。

一、基本概念

在开始代码编写之前,我们需要了解递归与文件夹的基本概念。

递归是指一个函数在内部调用自身,形成一个递归函数。在文件夹中,递归指的是在一个文件夹内遍历所有的子文件夹和文件。

二、文件遍历

Python提供了os模块来操作文件和文件夹。我们可以使用os.walk()函数来遍历一个文件夹内的所有文件和子文件夹。

import os

def traverse_folder(path):
    for root, dirs, files in os.walk(path):
        for file in files:
            file_path = os.path.join(root, file)
            with open(file_path, 'r') as f:
                content = f.read()
                # 对文件内容进行处理

traverse_folder("example_folder")

使用os.walk()函数可以遍历整个文件夹,并返回根目录、子文件夹、文件三个参数。我们可以再次使用os.path.join()函数将文件夹和文件名连接起来得到文件的完整路径。

三、递归遍历

如果文件夹中还有其他子文件夹,则需要使用递归来遍历子文件夹。

import os

def traverse_folder(path):
    for root, dirs, files in os.walk(path):
        for file in files:
            file_path = os.path.join(root, file)
            with open(file_path, 'r') as f:
                content = f.read()
                # 对文件内容进行处理
        for dir_name in dirs:
            traverse_folder(os.path.join(root, dir_name))

traverse_folder("example_folder")

在代码中,我们使用了一个for循环遍历每一个文件夹,并再次调用traverse_folder()函数进行遍历。这样就可以无限遍历子文件夹。

四、筛选文件类型

如果我们只需要遍历某个特定类型的文件,可以使用字符串.endswith()方法来筛选文件。

import os

def traverse_folder(path):
    for root, dirs, files in os.walk(path):
        for file in files:
            if file.endswith(".txt"):    # 筛选.txt文件
                file_path = os.path.join(root, file)
                with open(file_path, 'r') as f:
                    content = f.read()
                    # 对txt文件内容进行处理
        for dir_name in dirs:
            traverse_folder(os.path.join(root, dir_name))

traverse_folder("example_folder")

五、总结

使用Python递归遍历文件夹,可以方便地从文件夹中获取所有的文件和子文件夹。我们可以灵活运用os模块提供的函数,根据自己的需要处理文件内容。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。