python—针对csv的数据处理

本文介绍了一个Python实现的功能,能够将CSV报表转换为特定格式,并进行数据处理。通过加载CSV报表,转换为XLSX格式,调整表格样式,最终输出符合标准的报表。注意,此功能适用于特定报表格式,若CSV格式变动可能影响转换效果,且该程序为定制版,不支持其他CSV表格式转换。
摘要由CSDN通过智能技术生成

功能简介:支持将csv报表转成特定的格式并支持数据处理

历时三日,终完成,此功能类似于针对单元格中的内容做条件格式的处理。抛砖引玉。

实现过程:
加载csv报表—>格式转换成xlsx格式,简单处理,保存—>修改表格样式,保存文件,输出报表
加载csv报表:1、外部输入全路径 2、默认为文件夹下最新的修改的csv报表
格式转换:报表转换后文件名按照当前系统时间默认生成,保证每次转换不会有重复的文件夹
修改表格样式:按照标准表格的要求,输出报表
在这里插入图片描述实现代码

import os
import logging
import datetime
import csv
import sys
import pandas as pd
import openpyxl
import time
import datetime 
from openpyxl.styles import fills,colors,NamedStyle,Font,Side,Border,PatternFill,Alignment,Protection
from openpyxl.utils import get_column_letter, column_index_from_string

"""
支持配置区域
"""
filePath=""  #= "D:/ButtonCG/report"      #转换前文件位置
writerFilePath = "D:/FormatCoversion"    #格式转换后输出的文件夹位置
configFile ="formatconfig.txt"              #配置文件

#xlsx表格规则配置
rang_max_starting ='M5:'  #最大值区间开始点
rang_min_starting ='M3:'  #最小值区间开始点
rang_max_line ='5'   #max区间
rang_min_line ='3'   #min区间
row_pos = 9   #开始处理的行位置
col_pos = 13   #开始处理的列位置

#日志环境配置
logging.basicConfig(format='%(asctime)s | %(pathname)s | line:%(lineno)d | %(levelname)s | %(message)s',
					level=logging.DEBUG, filemode='a',
					filename='D:\\IVLogs\\' + datetime.datetime.now().strftime('%Y%m%d') + '_PY.log')
rf_handler = logging.StreamHandler(sys.stderr)
rf_handler.setLevel(logging.DEBUG)
rf_handler.setFormatter(logging.Formatter('%(asctime)s | %(pathname)s | line:%(lineno)d | %(levelname)s | %(message)s'))
logging.getLogger().addHandler(rf_handler)



"""
第一部分:实现默认加载文件夹下,最新修改的文件名的获取(全路径)
"""

"""
函数功能,查找指定目录下,最新的修改的文件名称
"""
def latestFileName(filepath):
    list1 =[]
    listdir(filepath,list1)
    filename = newestfile(list1)
    return filename


"""
函数功能:遍历查询文件夹下的文件名和修改时间
"""
def listdir(path, list_name): #传入存储的list
 for file in os.listdir(path):
  file_path = os.path.join(path, file)
  if os.path.isdir(file_path): #如果是目录,则递归执行该方法
   listdir(file_path, list_name)
  else:
    list_name.append((file_path,os.path.getmtime(file_path))) #把文件路径,文件修改时间加入list中
    

"""
函数功能:遍历查询最新的文件名称
"""
def newestfile(target_list): #传入包含文件路径,文件创建时间的list
 newest_file = target_list[0] #冒泡算法找出时间最大的
 for i in range(len
  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值