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

Posted fyzhang

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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_12.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_12.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)注释超全的主要内容,如果未能解决你的问题,请参考以下文章

根据列将大型 csv 文件拆分为多个文件

根据列值拆分大型 csv 文本文件

根据父文件头的大小将大型 CSV 文件拆分为多个文件

r - 将一个 csv 文件拆分为多个 txt 文件

如何按百分比将 CSV 数据集拆分为训练集和测试集,并将拆分后的数据集与 pandas 一起保存到本地文件夹中? [复制]

使用Python将单行的文本拆分为CSV文件中同一列的多行