码迷,mamicode.com
首页 > 编程语言 > 详细

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

时间:2019-10-07 00:54:19      阅读:225      评论:0      收藏:0      [点我收藏+]

标签:split   audio   pandas   chunk   表示   分离   header   tab   control   

程序

 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)

 

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

标签:split   audio   pandas   chunk   表示   分离   header   tab   control   

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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!