程序
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