import osimport pandas as pdfolder_path = '/path/to/folder' # 路径files = os.listdir(folder_path) # 获取路径下所有文件excel_files = [f for f in files if f.endswith('.xlsx')] # 筛选出所有后缀为.xlsx的文件data_frames = [] # 存储所有读取到的excel文件for file in excel_files: file_path = os.path.join(folder_path, file) # 获取文件的绝对路径 data_frames.append(pd.read_excel(file_path))writer = pd.ExcelWriter('/path/to/output/file.xlsx', engine='xlsxwriter') # 创建一个ExcelWriter对象all_data = pd.concat(data_frames, ignore_index=True) # 合并所有dataframeall_data.to_excel(writer, index=False) # 将合并后的dataframe写入同一个excel文件中writer.save() # 保存文件AttributeError: 'XlsxWriter' object has no attribute 'save'. Did you mean: '_save'?怎么解决
时间: 2024-02-03 10:04:11 浏览: 105
py源码实例Python从多路径多Excel表中获取数据并存入新表
将 writer.save() 改为 writer.close() 即可解决该问题。XlsxWriter 对象没有 save() 方法,需要使用 close() 方法来关闭文件。修改后的代码如下:
```
import os
import pandas as pd
folder_path = '/path/to/folder' # 路径
files = os.listdir(folder_path) # 获取路径下所有文件
excel_files = [f for f in files if f.endswith('.xlsx')] # 筛选出所有后缀为.xlsx的文件
data_frames = [] # 存储所有读取到的excel文件
for file in excel_files:
file_path = os.path.join(folder_path, file) # 获取文件的绝对路径
data_frames.append(pd.read_excel(file_path))
writer = pd.ExcelWriter('/path/to/output/file.xlsx', engine='xlsxwriter') # 创建一个ExcelWriter对象
all_data = pd.concat(data_frames, ignore_index=True) # 合并所有dataframe
all_data.to_excel(writer, index=False) # 将合并后的dataframe写入同一个excel文件中
writer.close() # 关闭ExcelWriter对象,保存文件
```
阅读全文