python遍历文件夹下所有excel文件

  • Post category:Python

当你需要处理多个Excel文件时,可能需要编写Python脚本来遍历所有的Excel文件。下面是一个完整的Python代码示例,可以遍历指定文件夹中所有的Excel文件,并打印出每个Excel文件的名称和工作表名称:

准备工作

首先,你需要安装两个Python库pandas和os。在命令行中输入以下命令安装:

pip install pandas
pip install os

Python代码

import pandas as pd
import os

dir_path = r"C:\ExcelFiles"  # 这里替换为你自己的文件夹路径

for file in os.listdir(dir_path):
    if file.endswith(".xlsx"):  # 筛选出Excel文件
        file_path = os.path.join(dir_path, file)
        print("处理文件:", file)
        xl = pd.ExcelFile(file_path)
        for sheet_name in xl.sheet_names:  # 遍历每个工作表
            print("    工作表名称:", sheet_name)
            df = pd.read_excel(file_path, sheet_name=sheet_name)
            # 在这里写下要执行的代码,比如读取数据,进行处理等等。

代码解释:

  1. 首先,我们导入了pandas和os库。
  2. 然后,定义了一个变量dir_path,表示要遍历的文件夹路径。你需要将其替换为你自己的文件夹路径。
  3. 接着,我们使用os库中的listdir()函数遍历文件夹中的所有文件,并使用endswith()函数筛选出.xlsx结尾的Excel文件。
  4. 对于每个Excel文件,我们使用pd.ExcelFile()函数打开,并使用sheet_names属性获取工作表名称。
  5. 然后,我们使用pd.read_excel()函数读取一个工作表中的数据。你可以在此处添加要执行的代码,比如读取数据,进行处理等等。

下面是两个示例说明:

示例一:读取每个工作表中的数据并处理

import pandas as pd
import os

dir_path = r"C:\ExcelFiles"  # 这里替换为你自己的文件夹路径

for file in os.listdir(dir_path):
    if file.endswith(".xlsx"):  # 筛选出Excel文件
        file_path = os.path.join(dir_path, file)
        print("处理文件:", file)
        xl = pd.ExcelFile(file_path)
        for sheet_name in xl.sheet_names:  # 遍历每个工作表
            print("    工作表名称:", sheet_name)
            df = pd.read_excel(file_path, sheet_name=sheet_name)
            # 在这里写下要执行的代码,比如读取数据,进行处理等等。
            print(df.head())  # 输出头五行数据

该示例代码输出每个工作表的前五行数据。

示例二:将每个工作表的数据汇总到一个数据框中

import pandas as pd
import os

dir_path = r"C:\ExcelFiles"  # 这里替换为你自己的文件夹路径

# 创建一个空的数据框,用于存储所有工作表的数据
df_all = pd.DataFrame()

for file in os.listdir(dir_path):
    if file.endswith(".xlsx"):  # 筛选出Excel文件
        file_path = os.path.join(dir_path, file)
        print("处理文件:", file)
        xl = pd.ExcelFile(file_path)
        for sheet_name in xl.sheet_names:  # 遍历每个工作表
            print("    工作表名称:", sheet_name)
            df = pd.read_excel(file_path, sheet_name=sheet_name)
            # 在这里写下要执行的代码,比如读取数据,进行处理等等。
            # 将当前工作表的数据添加到数据框中
            df_all = pd.concat([df_all, df], ignore_index=True)

# 输出汇总后的数据框
print(df_all.head())

该示例代码遍历每个Excel文件中的所有工作表,并将数据汇总到一个数据框中,最终输出该数据框。