转化:csv批量转为excel

一个需求,

代码如下:

import pandas as pd
import os


class C_to_EXC:

    @staticmethod
    def mkdir_folder():
        """创建保存excel的文件夹"""
        folder_name = "处理的excel"
        if not os.path.exists(folder_name):
            os.mkdir(folder_name)

    def __bianli(self):
        """遍历csv文件"""
        # 指定要遍历的目录
        directory = r'C:\Users\43701\Desktop\测试\旧的csv'

        # 获取目录下的所有文件名
        file_names = os.listdir(directory)

        # 遍历文件名列表
        for file_name in file_names:
            yield file_name.strip('.csv')

    def to_excel(self):
        """  将csv转化为excel"""
        for i in self.__bianli():
            try:
                # 读取CSV文件并将其存储为DataFrame对象
                df = pd.read_csv(f'{i}.csv')  # 目录指定
                # 将DataFrame对象写入Excel文件
                df.to_excel(rf'C:\Users\43701\Desktop\测试\新的excel\{i}.xlsx', index=False)
                print(f'{i}.excel保存完毕')
            except Exception as e:
                print(f"{i}csv格式需为utf-8--->", e)

    def deal_data(self):
        """对excel文件过滤处理  """
        # 读取原始 Excel 文件

        """遍历excel文件"""
        # 指定要遍历的目录
        directory = r'C:\Users\43701\Desktop\测试\excel文件'

        # 获取目录下的所有文件名
        file_names = os.listdir(directory)

        # 遍历文件名列表
        for file_name in file_names:
            file_name = file_name.strip('.xlsx')
        
        
            df = pd.read_excel(f'{file_name}.xlsx')
    
            # 将日期列转换为 datetime 格式
            df['日期'] = pd.to_datetime(df['日期'])
    
    
            # 筛选指定日期内的数据
            start_date = pd.to_datetime('2022-08-29')
            end_date = pd.to_datetime('2022-12-31')
            mask = (df['日期'] >= start_date) & (df['日期'] <= end_date)
            filtered_df = df.loc[mask]
    
            # 格式化日期列为所需的格式
            filtered_df['日期'] = filtered_df['日期'].dt.strftime('%Y-%m-%d')
    
            # 保存筛选后的数据到新的 Excel 文件
            with pd.ExcelWriter(f'{file_name}.xlsx') as writer:
                filtered_df.to_excel(writer, index=False)


fire = C_to_EXC()
# fire.to_excel()
fire.deal_data()
posted @ 2023-05-08 11:57  __username  阅读(322)  评论(0)    收藏  举报