如何开网站,做网站的不肯给ftp,impreza 4 wordpress,小说网站怎么做推广我这边有个需求#xff0c;是要求汇总一个文件夹所有的excel文件#xff0c; 其中有.xls和 .xlsx文件#xff0c;同时还excel文件中的数据可能还不一致#xff0c;会有表头数据不一样需要一起汇总。
首先先遍历子文件夹并读取Excel文件#xff1a; 使用os库来遍历包含子文…我这边有个需求是要求汇总一个文件夹所有的excel文件 其中有.xls和 .xlsx文件同时还excel文件中的数据可能还不一致会有表头数据不一样需要一起汇总。
首先先遍历子文件夹并读取Excel文件 使用os库来遍历包含子文件夹的主文件夹并读取所有的Excel文件。
import osmain_folder 文件夹路径
all_data []for root, dirs, files in os.walk(main_folder):for file in files:if file.endswith(.xlsx): # 只处理Excel文件可以根据需要修改扩展名file_path os.path.join(root, file)df pd.read_excel(file_path, skiprows2) # 跳过前两行无用数据all_data.append(df)elif file.endswith(.xls):file_path os.path.join(root, file)df pd.read_excel(file_path, skiprows2, enginexlrd)all_data.append(df)
然后是合并数据 使用pandas的concat函数将所有数据帧合并为一个总的数据帧并处理不同表头的情况。假设表头位于第一行。
combined_df pd.concat(all_data, ignore_indexTrue)# 处理不同表头的情况
combined_df combined_df.fillna() # 将NaN值填充为空字符串最后呢 保存总表将合并后的数据保存到一个新的Excel文件 combined_df.to_excel(保存的excel文件路径, indexFalse)出现的问题 上图错误 我用断点调试去看数据 发现里面出现了一个错误的文件路径。 是以~$ 开头的一个excel文件。但是真实环境中是没有这个excel文件去查了一下资料 如下解释 在Windows系统中当一个Excel文件.xlsx 或 .xls正在被某个用户编辑时Excel会创建一个临时文件文件名以 ~$ 开头然后是原始文件的名称。这个临时文件用于跟踪编辑进程以防止多个用户同时编辑相同的文件时发生冲突。
所以在os.walk遍历文件夹时它会包括所有文件包括这些临时文件。这些临时文件通常不应被处理或读取因为它们是Excel编辑过程中的中间文件。
解决方案
要在遍历文件夹时排除这些临时文件您可以添加一个条件来检查文件名如果文件名以 ~$ 开头则跳过该文件 在循环中多加一个判断就好了。
if not file.startswith(~$):