解决CSV文件转化EXCEL-Python高效办公系列(.xlsx)

解决CSV文件转化EXCEL-Python高效办公系列(.xlsx)

问题引入

系统导出的数据大多是CSV格式的文件,对于大量的CSV文件的对比。由于CSV没有EXCEL中Sheet的概念,所以一定需要逐一打开每一个CSV文件比对内容。如果可以将CSV文件都合成到一个Excel文件中,就非常方便。

解决问题

运行环境

语言:Python 3.0以上

使用库:

  1. os
  2. csv
  3. re
  4. openpyxl

基本思路

Created with Raphaël 2.2.0 开始 读取CSV文件夹,取出目标文件夹中的所有的CSV文件路径 依次打开每一个文件 创建EXCEL文件(.xlsx) 创建Sheet名(可根据CSV文件名规则) 将CSV文件中的数据导入对应Sheet 保存EXCEL文件 登录

代码

# -*- 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')

结尾

点滴积累,方成大器。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值