python面向对象思想用walk访问路径下所有的excel文件,读取sheet_name=“结论认同表”的内容,合并到一个excel文件下进行输出
时间: 2024-03-27 19:40:34 浏览: 57
好的,假设您的操作系统是Windows,我来给您提供一份Python代码实现该功能。请注意,以下代码中的文件路径和文件名需要根据您的具体情况进行修改。
```
import os
import pandas as pd
class ExcelMerger:
def __init__(self, root_path):
self.root_path = root_path
self.output_path = os.path.join(root_path, "output.xlsx")
self.df_list = []
def merge(self):
for foldername, subfolders, filenames in os.walk(self.root_path):
for filename in filenames:
if filename.endswith(".xlsx"):
file_path = os.path.join(foldername, filename)
df = pd.read_excel(file_path, sheet_name="结论认同表")
self.df_list.append(df)
merged_df = pd.concat(self.df_list)
merged_df.to_excel(self.output_path, index=False)
print("合并完成,输出文件路径为:", self.output_path)
if __name__ == "__main__":
root_path = r"C:\Users\yourusername\path\to\folder"
merger = ExcelMerger(root_path)
merger.merge()
```
以上代码中,我们定义了一个名为`ExcelMerger`的类,该类的作用是遍历指定文件夹下所有的Excel文件,读取其中名为“结论认同表”的sheet页,并将这些数据合并到一个新的Excel文件中。
在类的构造函数中,我们传入了一个根目录路径`root_path`,并且指定了输出文件的路径`output_path`。同时,我们定义了一个空的DataFrame列表`df_list`,用于存储遍历到的Excel文件的数据。
`merge()`方法是实现合并的核心代码。我们使用`os.walk()`方法遍历指定文件夹下所有的文件和子文件夹。在遍历每个Excel文件时,我们使用`pd.read_excel()`方法读取其中名为“结论认同表”的sheet页,并将读取到的DataFrame对象添加到`df_list`列表中。
最后,我们使用`pd.concat()`方法将所有读取到的DataFrame对象合并成一个新的DataFrame对象,并使用`to_excel()`方法将其输出到指定路径的Excel文件中。
您只需要将代码中的`root_path`变量修改成您需要遍历的文件夹路径,然后运行代码即可。
阅读全文