import os import pandas as pd # 设置目标文件夹路径 folder_path = r"D:/拆分后的工作簿" # 获取文件夹下所有的Excel文件 excel_files = [os.path.join(folder_path, f) for f in os.listdir(folder_path) if f.endswith('.xlsx')] # 创建一个空的DataFrame combined_data = pd.DataFrame() # 循环读取Excel文件,并将所有工作表合并到一个DataFrame中 for file in excel_files: print('Processing file:', file) excel_data = pd.read_excel(file, sheet_name=None) for sheet_name, sheet_data in excel_data.items(): sheet_data['Sheet'] = sheet_name combined_data = pd.concat([combined_data, sheet_data], ignore_index=True) # 将合并的数据写入一个Excel文件 writer = pd.ExcelWriter('combined_workbook.xlsx', engine='xlsxwriter') combined_data.to_excel(writer, index=False) writer.save()怎麽修改
时间: 2024-02-07 16:02:15 浏览: 369
pandas read_excel()和to_excel()函数解析
你可以尝试将代码修改为以下形式,使用`with`语句来自动关闭文件:
```python
import os
import pandas as pd
# 设置目标文件夹路径
folder_path = r"D:/拆分后的工作簿"
# 获取文件夹下所有的Excel文件
excel_files = [os.path.join(folder_path, f) for f in os.listdir(folder_path) if f.endswith('.xlsx')]
# 创建一个空的DataFrame
combined_data = pd.DataFrame()
# 循环读取Excel文件,并将所有工作表合并到一个DataFrame中
for file in excel_files:
print('Processing file:', file)
excel_data = pd.read_excel(file, sheet_name=None)
for sheet_name, sheet_data in excel_data.items():
sheet_data['Sheet'] = sheet_name
combined_data = pd.concat([combined_data, sheet_data], ignore_index=True)
# 将合并的数据写入一个Excel文件
with pd.ExcelWriter('combined_workbook.xlsx', engine='xlsxwriter') as writer:
combined_data.to_excel(writer, index=False)
```
在这个修改后的代码中,我们使用`with`语句来创建ExcelWriter对象,并在代码块结束时自动关闭该对象。这样可以避免忘记手动关闭ExcelWriter对象而导致的文件无法保存的问题。
阅读全文