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()






评论(0)


暂无数据
推荐帖子
0条评论
0条评论
0条评论