Python CSV 读写

# !/usr/bin/python3
# -*- coding:utf-8 -*-
"""
@author: JHC000abc@gmail.com
@file: util_csv.py
@time: 2024/7/31 14:51 
@desc: 

"""
import csv
import pandas as pd


class CSV(object):
    """

    """

    def read_yield_csv(self, file, headers=None, encoding="utf-8"):
        """

        :param file:
        :param heaers:
        :param encoding:
        :return:
        """
        with open(file, newline='', encoding=encoding, errors="ignore") as csvfile:
            for ind, line in enumerate(csv.reader(csvfile)):
                if ind == 0:
                    if not headers:
                        headers = [i.replace("\ufeff", "") for i in line]
                    yield {
                        "headers": headers,
                        "num": ind,
                        "line": line,
                    }

                if ind > 0:
                    yield {
                        "headers": headers,
                        "num": ind,
                        "line": line,
                    }

    def write_to_csv(self, file, data, headers, encoding="gbk"):
        """

        :param file:
        :param data:[[,,,],[,,,],[,,,],[,,,]]
        :param headers:[,,,]
        :param encoding:
        :return:
        """
        map = {}
        for ind, val in enumerate(headers):
            _temp = []
            for i in data:
                _i = i[ind].replace("\u2708", "").replace("\ufffd", "").replace('\ufe0f', "").replace("\u2753",
                                                                                                      "") if isinstance(
                    i[ind], str) else i[ind]
                _temp.append(_i)
            map[val] = _temp

        df = pd.DataFrame(map)
        df.to_csv(file, index=False, encoding=encoding)

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值