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中使用动态变量名的方法
May 06 Python
Python中处理字符串之isalpha()方法的使用
May 18 Python
浅谈python装饰器探究与参数的领取
Dec 01 Python
Python 面试中 8 个必考问题
Nov 16 Python
Python字典循环添加一键多值的用法实例
Jan 20 Python
Python发展简史 Python来历
May 14 Python
Python bytes string相互转换过程解析
Mar 05 Python
浅谈python的elementtree模块处理中文注意事项
Mar 06 Python
Python numpy多维数组实现原理详解
Mar 10 Python
python开根号实例讲解
Aug 30 Python
python的dict判断key是否存在的方法
Dec 09 Python
一些让Python代码简洁的实用技巧总结
Aug 23 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+DBM的同学录程序(4)
2006/10/09 PHP
PHP 截取字符串函数整理(支持gb2312和utf-8)
2010/02/16 PHP
php中get_cfg_var()和ini_get()的用法及区别
2015/03/04 PHP
使用PHPExcel操作Excel用法实例分析
2015/03/26 PHP
php上传大文件设置方法
2016/04/14 PHP
Thinkphp框架开发移动端接口(2)
2016/08/18 PHP
Mac系统下安装PHP Xdebug
2018/03/30 PHP
php实现的数组转xml案例分析
2019/09/28 PHP
两个DIV等高的JS的实现代码
2007/12/23 Javascript
jquery制作多功能轮播图插件
2015/04/02 Javascript
$.extend 的一个小问题
2015/06/18 Javascript
微信小程序 教程之WXSS
2016/10/18 Javascript
Bootstrap源码解读标签、徽章、缩略图和警示框(8)
2016/12/26 Javascript
ES6新特性之数组、Math和扩展操作符用法示例
2017/04/01 Javascript
Avalonjs双向数据绑定与监听的实例代码
2017/06/23 Javascript
vue之父子组件间通信实例讲解(props、$ref、$emit)
2018/05/22 Javascript
layer弹出的iframe层在执行完毕后关闭当前弹出层的方法
2018/08/17 Javascript
JavaScript实现汉字转换为拼音及缩写的方法示例
2019/03/28 Javascript
JavaScript学习教程之cookie与webstorage
2019/06/23 Javascript
vue 地区选择器v-distpicker的常用功能
2019/07/23 Javascript
JS+CSS+HTML实现“代码雨”类似黑客帝国文字下落效果
2020/03/17 Javascript
[15:20]DOTA2亚洲邀请赛总决赛开幕式表演:羽泉献唱
2017/04/05 DOTA
[53:49]LGD vs Fnatic 2018国际邀请赛小组赛BO2 第二场 8.18
2018/08/19 DOTA
Python环境下搭建属于自己的pip源的教程
2016/05/05 Python
TensorFlow损失函数专题详解
2018/04/26 Python
python3.6使用urllib完成下载的实例
2018/12/19 Python
python3中类的继承以及self和super的区别详解
2019/06/26 Python
python3实现二叉树的遍历与递归算法解析(小结)
2019/07/03 Python
Python3 搭建Qt5 环境的方法示例
2020/07/16 Python
html5 button autofocus 属性介绍及应用
2013/01/04 HTML / CSS
详解html5 shiv.js和respond.min.js
2018/01/24 HTML / CSS
社团活动总结报告
2014/06/27 职场文书
校园广播稿100字
2014/10/06 职场文书
小学一年级班主任工作经验交流材料
2015/11/02 职场文书
MySQL学习总结-基础架构概述
2021/04/05 MySQL
SQL SERVER中的流程控制语句
2022/05/25 SQL Server