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 相关文章推荐
wxPython定时器wx.Timer简单应用实例
Jun 03 Python
Python中出现IndentationError:unindent does not match any outer indentation level错误的解决方法
Apr 18 Python
PyQt5 QTableView设置某一列不可编辑的方法
Jun 25 Python
Django用户认证系统 组与权限解析
Aug 02 Python
Python之——生成动态路由轨迹图的实例
Nov 22 Python
PyTorch 对应点相乘、矩阵相乘实例
Dec 27 Python
Python3将ipa包中的文件按大小排序
Apr 17 Python
Python3.7下安装pyqt5的方法步骤(图文)
May 12 Python
基于Python词云分析政府工作报告关键词
Jun 02 Python
Python数据模型与Python对象模型的相关总结
Jan 26 Python
python实现批量提取指定文件夹下同类型文件
Apr 05 Python
Python TypeError: ‘float‘ object is not subscriptable错误解决
Dec 24 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依赖倒置(Dependency Injection)代码实例
2014/10/11 PHP
基于ThinkPHP实现批量删除
2015/12/18 PHP
PHP 使用 Imagick 裁切/生成缩略图/添加水印自动检测和处理 GIF
2016/02/19 PHP
PHP基于ICU扩展intl快速实现汉字转拼音及按拼音首字母分组排序的方法
2017/05/03 PHP
详解PHP序列化和反序列化原理
2018/01/15 PHP
javascript xml为数据源的下拉框控件
2009/07/07 Javascript
判断访客终端类型集锦
2015/06/05 Javascript
Js的Array数组对象详解
2016/02/22 Javascript
深入理解JavaScript中的对象复制(Object Clone)
2016/05/18 Javascript
简单实现js浮动框
2016/12/13 Javascript
Angular JS 生成动态二维码的方法
2017/02/23 Javascript
详解webpack和webpack-simple中如何引入css文件
2017/06/28 Javascript
AngularJS使用ocLazyLoad实现js延迟加载
2017/07/05 Javascript
Nodejs进阶之服务端字符编解码和乱码处理
2017/09/04 NodeJs
微信公众平台获取access_token的方法步骤
2019/03/29 Javascript
vue使用swiper.js重叠轮播组建样式
2019/11/14 Javascript
Python yield使用方法示例
2013/12/04 Python
Python中特殊函数集锦
2015/07/27 Python
pandas dataframe的合并实现(append, merge, concat)
2019/06/24 Python
python中pip的使用和修改下载源的方法
2019/07/08 Python
HTML5新增的8类INPUT输入类型介绍
2015/07/06 HTML / CSS
美国孩之宝玩具官网:Hasbro Pulse
2019/06/24 全球购物
俄罗斯第一家篮球店:StreetBall
2020/07/30 全球购物
用Java语言将一个键盘输入的数字转化成中文输出
2013/01/25 面试题
韩国商务邀请函
2014/01/14 职场文书
大学生家政服务项目创业计划书
2014/01/30 职场文书
莫言诺贝尔获奖演讲稿
2014/05/21 职场文书
党员群众路线对照检查材料思想汇报
2014/09/17 职场文书
爱的承诺书
2015/01/20 职场文书
投标单位介绍信
2015/05/05 职场文书
毕业设计致谢语
2015/05/14 职场文书
学习弘扬焦裕禄精神心得体会
2016/01/23 职场文书
标准演讲稿格式结尾应该怎么书写?
2019/07/17 职场文书
欧元符号 €
2022/02/17 杂记
Python OpenCV超详细讲解基本功能
2022/04/02 Python
vue-treeselect的基本用法以及解决点击无法出现拉下菜单
2022/04/30 Vue.js