前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >csv 一个文件切割成多份文件

csv 一个文件切割成多份文件

作者头像
kirin
发布2021-04-04 16:44:31
9400
发布2021-04-04 16:44:31
举报
文章被收录于专栏:Kirin博客
代码语言:javascript
复制
# coding:utf-8
#当前的项目名:csv
#当前编辑文件名:csv_split
#当前用户的登录名:kirin
#当前系统日期时间:2021/4/2 10:27
#用于创建文件的IDE的名称: PyCharm
import csv
class CsvSplit:
    def __init__(self,file_path,line=210000):
        '''
        :param file_path: 切割文件路径
        :param line: 文件切割后单个文件行数
        '''
        self.file_path='./handle.csv' # 需要切割的csv文件,
        self.cs=csv.reader(open(file_path,'r',encoding='utf-8')) # 打开被切割文件
        self.head=self.cs.__next__() # 标题行
        self.count=0 # 统计下标
        self.fname=0 # 文件数字命名
        self.lis=[] # 单次切割文件行数列表 21w行
        self.line=line # 默认行21w 可以根据实际调整
        self.run() # 初始化开始分割
    def file_write(self):
        write = csv.writer(open(f'./{str(self.fname)}.csv', 'a+', encoding='utf-8', newline=''))  # 新建文件开始保存
        write.writerow(self.head)  # 标题行写入
        write.writerows(self.lis)  # 数据行写入
    def run(self):
        for row in self.cs:
            self.count+=1 # 统计下标+1
            if self.count>=self.line: # 到达行数就进行切割保存
                self.file_write()
                self.fname += 1 # 文件数字序列号+1
                self.count=0 # 统计下标置空
                self.lis=[] # 数据行列表清空
            self.lis.append(row)
        # 最后一个文件写入
        self.file_write()
# 第一个参数为 文件路径 第二个参数为切割行数 默认21w行
CsvSplit('./handle.csv')
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2021/04/02 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档