Pandas 合并多个 (300多个) Excel 文件,并输出为 CSV 文件

446 阅读1分钟

爬虫同事帮忙爬了个网站信息,网站上有300多页,每页生成一个 Excel 文件,为方便处理,我需要合并成一个 all.csv 文件。

不废话,上代码:

import pandas as pd
import os

def process_data():
    folder_path = r'/Users/example'         
     # 要拼接的文件夹及其完整路径,注意不要包含中文
    saveFile_path =  r'/Users/example/'       #拼接后要保存的文件路径
    saveFile_name = r'all.csv'                #合并后要保存的文件名
    
    # 修改当前工作目录
    os.chdir(folder_path)

    # 将该文件夹下的所有文件名存入一个列表
    file_list = os.listdir()
    # print(file_list)
    
    # 读取第一个CSV文件并包含表头,默认编码方式为 UTF-8
    df = pd.read_excel(folder_path + '/'+ file_list[0])   
    

    print(df)

    # 将读取的第一个 CSV 文件写入合并后的文件保存
    df.to_csv(saveFile_path + saveFile_name,index=False)
    
    # 遍历列表中所有 CSV 并追加到合并文件的末尾
    for i in range(1,len(file_list)):
        print(folder_path + '/'+  file_list[i])
        # 如果是以下两个文件,则跳过
        if file_list[i] == 'all.csv' or file_list[i] == '.DS_Store':
            pass
        else:
            # 不包含表头
            df = pd.read_excel(folder_path + '/'+  file_list[i], header = 1)
        
            df.to_csv(saveFile_path + saveFile_name,index=False, header=False, mode='a+')



if __name__ == '__main__':
    process_data()
    

代码思想有借鉴 blog.csdn.net/kxw1994/art… 中的方法,特此感谢。

以上,问题解决~