python数据读写操作之csv转excel

该博客展示了如何使用Python进行数据读写操作,包括从数据库读取数据,将处理后的数据写入CSV文件,然后将CSV文件转换为Excel(XLS)格式。主要涉及了`DBHandler`模块用于数据库交互,`csv`和`pandas`库用于数据存储和格式转换。代码中定义了一个`FileOperate`类,包含`write_csv`、`csv_to_xls`方法,实现了数据的完整流程。
摘要由CSDN通过智能技术生成

python数据读写操作之csv转excel

从数据库读取处理后的数据格式

在这里插入图片描述

写入csv文件的数据格式

在这里插入图片描述

从csv转为xls的数据格式

在这里插入图片描述

import os
import time
from config.settings import Settings
from middleware.db_handler import DBHandler
from decimal import Decimal
import csv
import pandas as pd

class FileOperate():
    def __init__(self):
        # 实例化:读取mysql操作模块
        self.MH = DBHandler()
        self.csv_path = os.path.join(Settings.test_case_path, "test_csv.csv")
        self.xls_path = os.path.join(Settings.test_case_path, "test_xls.xls")

    def setUp(self):
        pass

    def tearDown(self):
        # 关闭游标、关闭连接
        self.MH.close()
    def write_csv(self):
        # 读取csv文件
        global i
        sql = "select * from 表名 limit 20;"
        select_data = self.MH.select_sql(sql, one=False)
        number_infos = []
        # 将从数据库获取的数据进行处理存到一个列表再批量写入csv
        for i in select_data:
            print(i['id'], str(Decimal(i['amount']).quantize(Decimal('0.00'))),
                  str(Decimal(i['loan_rate']).quantize(Decimal('0.0'))), i['loan_term'])
            number_infos.append([i['id'], str(Decimal(i['amount']).quantize(Decimal('0.00'))),
                                 str(Decimal(i['loan_rate']).quantize(Decimal('0.0'))), i['loan_term']])
        with open(self.csv_path, 'w', newline='', encoding='utf-8') as csvfile:
            writer = csv.writer(csvfile)
            # 写入表头
            writer.writerow(['用户id', '金额', '税率', '借款期限'])
            # 将数据写入csv文件
            # writer.writerow(i) 写入一行
            writer.writerows(number_infos)  # 写入多行

    def csv_to_xls(self):
        # csv文件转xls格式,index = False去除索引
        csv = pd.read_csv(self.csv_path, encoding='utf-8')
        csv.to_excel(self.xls_path, sheet_name='Sheet1', index=False, float_format='%.2f')

    def xls_to_csv_(self):
        # xls文件转csv,index_col = 0从第0列开始读取
        data_xls = pd.read_excel(self.xls_path, index_col=0)
        data_xls.to_csv(self.csv_path, encoding='utf-8')

if __name__ == __main__:
    FO = FileOperate()
    FO.write_csv()
    time.sleep(5)
    FO.csv_to_xls()
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值