Python拆分大型CSV文件(亲测拆分178G)注释超全

程序

 1 #!/usr/bin/env python3
 2 # -*- coding:utf-8 -*-
 4 # @FileName :Test.py
 5 # @Software PyCharm
 6
 7 import os
 8 import pandas as pd
 9
10 # filename为文件路径,file_num为拆分后的文件行数
11 # 根据是否有表头执行不同程序,默认有表头的
12 def Data_split(filename,file_num,header=True):
13     if header:
14         # 设置每个文件需要有的行数,初始化为1000W
15         chunksize=10000
16         data1=pd.read_table(filename,chunksize=chunksize,sep=‘,‘,encoding=‘gbk‘)
17         # print(data1)
18         # num表示总行数
19         num=0
20         for chunk in data1:
21             num+=len(chunk)
22         # print(num)
23         # chunksize表示每个文件需要分配到的行数
24         chunksize=round(num/file_num+1)
25         # print(chunksize)
26         # 分离文件名与扩展名os.path.split(filename)
27         head,tail=os.path.split(filename)
28         data2=pd.read_table(filename,chunksize=chunksize,sep=‘,‘,encoding=‘gbk‘)
29         i=0
30         for chunk in data2:
31             chunk.to_csv(‘{0}_{1}{2}‘.format(head,i,tail),header=None,index=False)
32             print(‘保存第{0}个数据‘.format(i))
33             i+=1
34     else:
35         # 获得每个文件需要的行数
36         chunksize=10000
37         data1=pd.read_table(filename,chunksize=chunksize,header=None,sep=‘,‘)
38         num=0
39         for chunk in data1:
40             num+=len(chunk)
41             chunksize=round(num/file_num+1)
42
43             head,tail=os.path.split(filename)
44             data2=pd.read_table(filename,chunksize=chunksize,header=None,sep=‘,‘)
45             i=0
46             for chunk in data2:
47                 chunk.to_csv(‘{0}_{1}{2}‘.foemat(head,i,tail),header=None,index=False)
48                 print(‘保存第{0}个数据‘.format(i))
49                 i+=1
50
51 filename=‘文件路径‘
52 #num为拆分为的文件个数
53 Data_split(filename,num,header=True)

原文地址:https://www.cnblogs.com/FYZHANG/p/11629075.html

时间: 2024-10-09 00:44:04

Python拆分大型CSV文件(亲测拆分178G)注释超全的相关文章

Python批量处理CSV文件

#encoding: utf-8 __author__ = 'DELL' import csv import glob import datetime import sys import os reload(sys) #中文错误 sys.setdefaultencoding( "utf-8" ) ''' @author likehua CSV批处理 ''' class BatchProcessCSV: def __init__(self,inputfolder="c:\\in

Python 中读取csv文件中有中文的情况

Python 中读取csv文件中有中文的情况,提示编码问题: 读取的时候: import sys reload(sys) #中文错误 sys.setdefaultencoding( "utf-8" ) save 存储的时候: dataframe可以使用to_csv方法方便地导出到csv文件中,如果数据中含有中文,一般encoding指定为"utf-8″,否则导出时程序会因为不能识别相应的字符串而抛出异常,index指定为False表示不用导出dataframe的index数据

109:大型CSV文件的处理方式

生成大的CSV文件: 108是生成的一个小的csv文件,如果想要生成大型的csv文件,那么以上方式将有可能会发生超时的情况(服务器要生成一个大型csv文件,需要的时间可能会超过浏览器默认的超时时间).这时候我们可以借助另外一个类,叫做StreamingHttpResponse对象,这个对象是将响应的数据作为一个流返回给客户端,而不是作为一个整体返回.示例代码如下:from django.http import HttpResponse, JsonResponse, StreamingHttpRe

使用pandas处理大型CSV文件

# -*- coding:utf-8 -*- ''' CSV 常用API 1)reader(csvfile[, dialect='excel'][, fmtparam]),主要用于CSV 文件的读取,返回一个 reader 对象用于在CSV 文件内容上进行行迭代. 参数: csvfile,需要是支持迭代(Iterator)的对象,通常对文件(file)对象或者列表(list)对象都是适用的,并且每次调用next() 方法的返回值是字符串(string): dialect 的默认值为excel,与

Python: 对CSV文件读写

1. python 有专门的csv包,直接导入即可. import csv: 2. 直接使用普通文件的open方法 csv_reader=open("e:/python/csv_data/log.csv" , 'r') data=[] for line in csv_reader: data.append(list(line.strip().split('|'))) for line in data: print(line) 3. 使用csv.reader & writer,返

附加只有数据文件无日志文件,亲测

写这个东西只是为了记录一下作为新手的自己经历,大家就不要吐得厉害哇,呵呵.... 1.新建一个数据库名相同的数据库 2.停止sql实例服务 3.把数据库文件覆盖新的数据库文件 4.启动实例服务 5.执行以下语句 alter database dbname set emergency--紧急模式 go alter database dbname  set single_user--单用户 go --开始修复,这部分如果报错不用管 dbcc checkdb(dbname ,REPAIR_ALLOW_

python序列化和csv文件读取

一.python 序列化: 序列化指的是将对象转化为"串行化"数据形式,存储到硬盘或通过网路传输到其他地方,反序列化是指相反的过程,将读取到串行化数据转化成对象.使用pickle模块中的函数,实现序列化和反序列化操作. 序列化使用: pickle.dump(obj,file)     obj是被序列化的对象,file指的是存储的文件. pickle.load(file)  从file读取数据,反序列化成对象. 二.与execl  文件不同,csv文件中: 1.值没有类型,所有值都是字符

Python中读取csv文件内容方法

gg [email protected] 85 男 dd [email protected] 52 女 fgf [email protected] 23 女 csv文件内容如上图,首先导入csv包,调用csv中的方法reader()创建一个对象,由于使用print data 打印出来的内容是集合,所以要想获取集合中某个具体值如“邮箱”,需要利用列表遍历元素的方法操作.如下代码: #coding=utf-8import csvmy_file= 'data.csv'date=csv.reader(f

python mongodb 读写CSV文件

# -*- coding: utf-8 -*-import osimport csvimport pymongofrom pymongo import MongoClient #建立连接client = MongoClient('10.20.4.79', 27017)#client = MongoClient('10.20.66.106', 27017)db_name = 'ta' #数据库名db = client[db_name] #读取CVS文件并插入到mongoDB数据库 的tvsplst