Python拆分大型CSV文件代码实例


Posted in Python onOctober 07, 2019

这篇文章主要介绍了Python拆分大型CSV文件代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

#!/usr/bin/env python3
# -*- coding:utf-8 -*-
# @FileName :Test.py
# @Software PyCharm

import os
import pandas as pd

# filename为文件路径,file_num为拆分后的文件行数
# 根据是否有表头执行不同程序,默认有表头的
def Data_split(filename,file_num,header=True):
  if header:
    # 设置每个文件需要有的行数,初始化为1000W
    chunksize=10000
    data1=pd.read_table(filename,chunksize=chunksize,sep=',',encoding='gbk')
    # print(data1)
    # num表示总行数
    num=0
    for chunk in data1:
      num+=len(chunk)
    # print(num)
    # chunksize表示每个文件需要分配到的行数
    chunksize=round(num/file_num+1)
    # print(chunksize)
    # 分离文件名与扩展名os.path.split(filename)
    head,tail=os.path.split(filename)
    data2=pd.read_table(filename,chunksize=chunksize,sep=',',encoding='gbk')
    i=0
    for chunk in data2:
      chunk.to_csv('{0}_{1}{2}'.format(head,i,tail),header=None,index=False)
      print('保存第{0}个数据'.format(i))
      i+=1
  else:
    # 获得每个文件需要的行数
    chunksize=10000
    data1=pd.read_table(filename,chunksize=chunksize,header=None,sep=',')
    num=0
    for chunk in data1:
      num+=len(chunk)
      chunksize=round(num/file_num+1)

      head,tail=os.path.split(filename)
      data2=pd.read_table(filename,chunksize=chunksize,header=None,sep=',')
      i=0
      for chunk in data2:
        chunk.to_csv('{0}_{1}{2}'.foemat(head,i,tail),header=None,index=False)
        print('保存第{0}个数据'.format(i))
        i+=1

filename='文件路径'
#num为拆分为的文件个数
Data_split(filename,num,header=True)

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
跟老齐学Python之玩转字符串(3)
Sep 14 Python
python实现多线程的两种方式
May 22 Python
Python实现的堆排序算法原理与用法实例分析
Nov 22 Python
Python数据持久化shelve模块用法分析
Jun 29 Python
使用Python开发SQLite代理服务器的方法
Dec 07 Python
手把手教你使用Python创建微信机器人
Apr 29 Python
python中的colorlog库使用详解
Jul 05 Python
python3发送邮件需要经过代理服务器的示例代码
Jul 25 Python
Python使用APScheduler实现定时任务过程解析
Sep 11 Python
python wxpython 实现界面跳转功能
Dec 17 Python
Python改变对象的字符串显示的方法
Aug 01 Python
Python操作PostgreSql数据库的方法(基本的增删改查)
Dec 29 Python
Python模块汇总(常用第三方库)
Oct 07 #Python
python numpy之np.random的随机数函数使用介绍
Oct 06 #Python
python系列 文件操作的代码
Oct 06 #Python
pip 安装库比较慢的解决方法(国内镜像)
Oct 06 #Python
Anaconda之conda常用命令介绍(安装、更新、删除)
Oct 06 #Python
Python pip 安装与使用(安装、更新、删除)
Oct 06 #Python
python 3.74 运行import numpy as np 报错lib\site-packages\numpy\__init__.py
Oct 06 #Python
You might like
php创建多级目录代码
2008/06/05 PHP
解析php取整的几种方式
2013/06/25 PHP
解析获取优酷视频真实下载地址的PHP源代码
2013/06/26 PHP
Javascript Math ceil()、floor()、round()三个函数的区别
2010/03/09 Javascript
Extjs NumberField后面加单位实现思路
2013/07/30 Javascript
jquery数组封装使用方法分享(jquery数组遍历)
2014/03/25 Javascript
jquery实现瀑布流效果分享
2014/03/26 Javascript
alert和confirm功能介绍
2014/05/21 Javascript
JS模态窗口返回值兼容问题的完美解决方法
2016/05/28 Javascript
AngularJS基础 ng-srcset 指令简单示例
2016/08/03 Javascript
JavaScript中的回调函数实例讲解
2019/01/27 Javascript
vue实现修改图片后实时更新
2019/11/14 Javascript
npm ci命令的基本使用方法
2020/09/20 Javascript
vue 基于abstract 路由模式 实现页面内嵌的示例代码
2020/12/14 Vue.js
js删除对象中的某一个字段的方法实现
2021/01/11 Javascript
[10:21]DOTA2-DPC中国联赛 正赛 PSG.LGD vs Aster 选手采访
2021/03/11 DOTA
使用IronPython把Python脚本集成到.NET程序中的教程
2015/03/31 Python
Django的数据模型访问多对多键值的方法
2015/07/21 Python
python getopt详解及简单实例
2016/12/30 Python
python验证码识别教程之利用滴水算法分割图片
2018/06/05 Python
对Python中TKinter模块中的Label组件实例详解
2019/06/14 Python
解决pycharm 工具栏Tool中找不到Run manager.py Task的问题
2019/07/01 Python
pyenv虚拟环境管理python多版本和软件库的方法
2019/12/26 Python
Matplotlib.pyplot 三维绘图的实现示例
2020/07/28 Python
Python pip install之SSL异常处理操作
2020/09/03 Python
html5调用摄像头功能的实现代码
2018/05/07 HTML / CSS
通信工程专业个人找工作求职信范文
2013/09/21 职场文书
学校十一活动方案
2014/02/01 职场文书
内蒙古鄂尔多斯市市长寄语
2014/04/10 职场文书
春节请假条
2014/04/11 职场文书
2015年万圣节活动总结
2015/03/24 职场文书
学校2015年纠风工作总结
2015/05/15 职场文书
2016银行求职自荐信
2016/01/28 职场文书
《有余数的除法》教学反思
2016/02/22 职场文书
股东合作协议书模板2篇
2019/11/05 职场文书
深入理解MySQL中MVCC与BufferPool缓存机制
2022/05/25 MySQL