热线电话:13121318867

登录
2020-12-17 阅读量: 734
如何将多个csv文件连接成一个xlsx文件

将当前文件夹下所有csv文件按照文件名升序合并成一个xlsx类型的表格文件,并且只保留第一个csv的表头,去掉后面文件的表头

使用方法:

将脚本运行在csv文件的文件夹下

import pandas as pd
from pandas.io.excel import ExcelWriter
import os
def csv_to_xlsx_pd():
    file_name = "data.xlsx"  # 要生成的文件名
    file_list = []  # 存放当前文件夹下的csv文件
    for i in os.listdir():
        if os.path.isfile(i) and i.endswith('csv'):
            file_list.append(i)
    tempfile = 'temp.csv'
    file_list.sort()  # 对csv文件进行排序,默认为升序
    try:
        # if os.path.isfile(file_name):  # 如果要生成的文件已经存在,删除这个文件
        #     os.remove(file_name)
        for index, file in enumerate(file_list):  # 把所有的csv文件合并到一个tempfile中
            flag = 0  # 用来确定是否保留列名
            print("正在处理第", index + 1, "个文件", file)
            if index == 0:   # 第一个文件写入的时候保留列名,其余的不保留
                flag = 1
            csv = pd.read_csv(file)
            csv.to_csv(tempfile, mode='a', index=False, header=flag) # header=0表示不保留列名,index=False表示不保留行索引,mode='a'表示追加方式写入,文件原有内容不会被清除
        with ExcelWriter(path=file_name) as ew:  # 把tempfile写到xlsx格式的文件中
            pd.read_csv(tempfile, encoding='utf-8').to_excel(ew, index=False)
            os.remove(tempfile)
            # csv.to_excel('data.xlsx', sheet_name='data')
            print("正在合并文件")
        print("合并完成")
    except PermissionError:
        print("=======温馨提示:", file_name, "文件已打开,无法写入,请关闭文件重试========")
if __name__ == '__main__':
    csv_to_xlsx_pd()


70.3323
0
关注作者
收藏
评论(0)

发表评论

暂无数据
推荐帖子