解决CSV文件转化EXCEL-Python高效办公系列(.xlsx)
问题引入
系统导出的数据大多是CSV格式的文件,对于大量的CSV文件的对比。由于CSV没有EXCEL中Sheet的概念,所以一定需要逐一打开每一个CSV文件比对内容。如果可以将CSV文件都合成到一个Excel文件中,就非常方便。
解决问题
运行环境
语言:Python 3.0以上
使用库:
- os
- csv
- re
- openpyxl
基本思路
代码
# -*- coding: utf-8 -*-
import os
import csv
import re
from openpyxl import Workbook
# 给出Sheet名的命名规则(非必须)
pattern = re.compile(r'[\d]+_[\d]+_[\d]+')
#CSV文件所在路径
dir = r'C:\CsvFolder'
os.chdir(dir)
#创建一个XLSE文件
wb = Workbook()
#遍历CSV文件路径
for i in os.listdir(dir):
dirpath = os.path.join(dir,i)
if i.endswith('.csv'):
print(i.split('.csv')[0])
ws = wb.create_sheet(pattern.search(i.split('.csv')[0]).group()) #插入到最后(default)
_file = open(i,'r',encoding='UTF-8')
ls = []
#转化当前的CSV文件内容
for line in _file:
# line.replace('\t', ',') #将Tab转化为","
# line.replace('\n',',') #将换行符转化为","
#将"转化为空
line = line.replace('\"','')
#将数据以逗号隔开加入list
ls.append(line.split(','))
print(ls);
#将对应位置的数据填入EXCEL的Sheet的表格中
for i in range(len(ls)):
for j in range(len(ls[i])):
ws.cell(row=i+1,column=j+1).value=ls[i][j]
#保存转化后的EXCEL文件
wb.save('1.xlsx')
结尾
点滴积累,方成大器。