2020-12-17
阅读量:
939
如何将多个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
2
0
关注作者
收藏
评论(0)
发表评论
暂无数据
推荐帖子
0条评论
0条评论
0条评论

