首页 > 技术文章 > python拆分文件

taozhang 2018-10-28 01:31 原文

 1  1 # -*- coding: utf-8 -*-
 2  2 """
 3  3 Created on Sun Oct 28 01:05:03 2018
 4  4 
 5  5 @author:
 6  6 """
 7  7 
 8  8 import os
 9  9 import time
10 10  
11 11 def mkSubFile(lines,head,srcName,sub):
12 12     [des_filename, extname] = os.path.splitext(srcName)
13 13     filename  = des_filename + '_' + str(sub) + extname
14 14     print( 'make file: %s' %filename)
15 15     fout = open(filename,'w')
16 16     try:
17 17         fout.writelines([head])
18 18         fout.writelines(lines)
19 19         return sub + 1
20 20     finally:
21 21         fout.close()
22 22  
23 23 def splitByLineCount(filename,count):
24 24     fin = open(filename,'r')
25 25     try:
26 26         head = fin.readline()
27 27         buf = []
28 28         sub = 1
29 29         for line in fin:
30 30             buf.append(line)
31 31             if len(buf) == count:
32 32                 sub = mkSubFile(buf,head,filename,sub)
33 33                 buf = []
34 34         if len(buf) != 0:
35 35             sub = mkSubFile(buf,head,filename,sub)   
36 36     finally:
37 37         fin.close()
38 38  
39 39 if __name__ == '__main__':
40 40     begin = time.time()
41 41     splitByLineCount('Taxi_Trips.csv',10000000)
42 42     end = time.time()
43 43     print('time is %d seconds ' % (end - begin))
44  
View Code

 

推荐阅读