可以尝试使用pd.concat()chunksize参数来减少内存占用。chunksize参数允许指定每次读取的行数,将大文件分成较小的块进行处理。

以下是修改后的代码示例:

folder_excelpath = 'F:/自动验单数据/4.5-5.5验本数据/'  # 路径
files = os.listdir(folder_excelpath)  # 获取路径下所有文件
excel_files = [f for f in files if f.endswith('.xlsx')]  # 筛选出所有后缀为.xlsx的文件
data_frames = []  # 存储所有读取到的excel文件
chunksize = 10000  # 每次读取的行数
for file in excel_files:
    file_path = os.path.join(folder_excelpath, file)  # 获取文件的绝对路径
    for chunk in pd.read_excel(file_path, chunksize=chunksize):
        data_frames.append(chunk)
writer = pd.ExcelWriter('F:/自动验单数据/4.5-5.5验本数据.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()  # 保存文件

这样,每次只读取chunksize行数据,处理完后再读取下一块数据,可以减少内存占用。你可以根据实际情况调整chunksize的大小

folder_excelpath = F自动验单数据45-55验本数据 # 路径 files = oslistdirfolder_excelpath # 获取路径下所有文件 excel_files = f for f in files if fendswithxlsx # 筛选出所有后缀为xlsx的文件 data_frames = # 存储所有读取到的excel文件

原文地址: https://www.cveoy.top/t/topic/iifV 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录