Python获取文件夹及其子文件夹中所有xlsx文件

在日常的数据处理和分析中,我们经常需要从文件夹中提取特定类型的文件进行处理。对于包含多个文件夹和子文件夹的情况,手动提取文件将是一项繁琐的任务。Python提供了强大的库和函数来处理文件和文件夹,我们可以利用这些工具来自动获取文件夹及其子文件夹中的所有xlsx文件。本文将介绍如何使用Python获取文件夹及其子文件夹中所有xlsx文件,并附带代码示例。

1. 使用os.walk函数遍历文件夹

Python的os模块提供了许多用于处理文件和文件夹的函数。其中os.walk函数可以用于遍历文件夹及其子文件夹,并返回每个文件夹中的文件和子文件夹。我们可以利用os.walk函数获取所有xlsx文件的路径。

下面是一个示例代码:

import os

def get_xlsx_files(folder_path):
    xlsx_files = []
    for root, dirs, files in os.walk(folder_path):
        for file in files:
            if file.endswith(".xlsx"):
                xlsx_files.append(os.path.join(root, file))
    return xlsx_files

folder_path = "/path/to/folder"
xlsx_files = get_xlsx_files(folder_path)
print(xlsx_files)

在代码中,我们首先定义了一个get_xlsx_files函数,该函数接受一个文件夹路径作为参数。在函数内部,我们使用os.walk函数遍历文件夹及其子文件夹。对于每个文件,我们检查文件名是否以".xlsx"结尾,如果是,则将文件的完整路径添加到xlsx_files列表中。最后,我们将获取到的所有xlsx文件路径打印出来。

2. 使用Path对象遍历文件夹

除了使用os模块的函数外,我们还可以使用Python 3.4及以上版本中的pathlib模块来操作文件和文件夹路径。使用Path对象,我们可以更直观地遍历文件夹及其子文件夹,并获取所有xlsx文件的路径。

下面是一个示例代码:

from pathlib import Path

def get_xlsx_files(folder_path):
    folder = Path(folder_path)
    xlsx_files = list(folder.glob("**/*.xlsx"))
    return xlsx_files

folder_path = "/path/to/folder"
xlsx_files = get_xlsx_files(folder_path)
print(xlsx_files)

在代码中,我们首先导入了pathlib模块中的Path类。然后,我们定义了一个get_xlsx_files函数,该函数接受一个文件夹路径作为参数。在函数内部,我们使用Path对象创建了一个代表文件夹的实例。接下来,我们使用glob函数和通配符"**/*.xlsx"来获取所有xlsx文件的路径。最后,我们将获取到的所有xlsx文件路径打印出来。

3. 处理子文件夹中的xlsx文件

如果我们需要对每个xlsx文件进行进一步的处理,可以在遍历文件夹的过程中处理每个文件。下面是一个示例代码,演示了如何读取每个xlsx文件的内容:

import os
import pandas as pd

def process_xlsx_files(folder_path):
    for root, dirs, files in os.walk(folder_path):
        for file in files:
            if file.endswith(".xlsx"):
                file_path = os.path.join(root, file)
                df = pd.read_excel(file_path)
                # 在这里进行对xlsx文件的处理
                print(df.head())

folder_path = "/path/to/folder"
process_xlsx_files(folder_path)

在代码中,我们首先导入了pandas库,用于读取xlsx文件的内容。然后,我们定义了一个process_xlsx_files函数,该函数接受一个文件夹路径作为参数。在函数内部,我们使用os.walk函数遍历文件夹及其子文件夹。对于每个xlsx文件,我们使用pandas的read_excel函数读取文件内容。这里只是简单地打印了每个文件的前几行内容,你可以根据具体需求在这里进行进一步的处理。

通过使用os.walk函数或Path对象,我们可以轻松地获取文件夹及其子文件夹中的所有xlsx文件。无论是对文件进行进一步处理,还是将它们用于数据分析和可视化,Python提供的强大工具可以使我们的