1、以下贴上代码,这个代码用于把文件夹里所有表格合并成一个表格
2、就是这个合并是可以运行的,但是在使用测试中观察到一个问题,就是在新建的表存放的数据太大了,内存占用已经超过了物理性能,就是想请教一下,有什么办法可以缩减一下占用的内存量。我的思路就是设置一个最高上限,到达上线就保存一次,后边清空掉内存占用的部分继续追加新的表,
现在就是追加要打开表,那么内存占用又会回来。怎么才能清除内存占用,然后追加之后还能接续上。
拜谢大佬们提供一下思路或者解决方法
[Python] 纯文本查看 复制代码 import openpyxl
def merge_files(file_paths, save_interval):
try:
# 创建一个新的工作簿和工作表
wb_new = openpyxl.Workbook()
ws_new = wb_new.active
first_row = None
counts=0
for file_path in file_paths:
counts += 1
print(f"处理 {file_path}")
if file_path.endswith('.xlsx'):
# 读取 Excel 文件
wb = openpyxl.load_workbook(file_path)
ws = wb.active
if first_row is None:
first_row = next(ws.iter_rows(min_row=1, max_row=1, values_only=True))
ws_new.append(first_row)
# 逐行追加数据
for row in ws.iter_rows(min_row=2, values_only=True):
ws_new.append(row) # 将该行数据追加到新表中
# # 保存新文件
# if counts % save_interval == 0:
# wb_new.save(f'汇总.xlsx')
# wb_new.close()
# wb_new = None
# ws_new = None
# 检查已经合并的表数量,最大标准参数save_interval,如果到达最大合并上线就保存一次
# if counts==save_interval:
# counts=0
# wb_new.save(f'汇总.xlsx')
# ws_new = wb_new.active
wb_new.save(f'汇总.xlsx') print(f"筛选合并完成并保存至 汇总 文件夹中")
except Exception as e:
print(f"在处理时发生错误,错误原因:{e}") |