国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

用Python實現大文本文件切割的方法

2020-02-16 00:37:59
字體:
來源:轉載
供稿:網友

在實際工作中,有些場景下,因為產品既有功能限制,不支持特大文件的直接處理,需要把大文件進行切割處理。

當然可以通過UltraEdit編輯工具,或者從網上下載一些文件切割器之類的。但這些要么手工操作太麻煩,要么不能滿足自定義需求。

而且,對程序員來說,DIY一個輪子還是有必要的。

Python作為快速開發工具,其代碼表達力強,開發效率高,因此用Python快速寫一個,還是可行的。

需求描述:

輸入:給定一個帶列頭的csv文件,或者txt文件,或者其他文本文件。

輸出:指定單文件內部行數的一系列可區分小文件。

開發環境:Python 3.6

代碼如下:

# -*- coding: cp936 -*-import osimport time def mkSubFile(lines,head,srcName,sub): [des_filename, extname] = os.path.splitext(srcName) filename = des_filename + '_' + str(sub) + extname print( 'make file: %s' %filename) fout = open(filename,'w') try:  fout.writelines([head])  fout.writelines(lines)  return sub + 1 finally:  fout.close() def splitByLineCount(filename,count): fin = open(filename,'r') try:  head = fin.readline()  buf = []  sub = 1  for line in fin:   buf.append(line)   if len(buf) == count:    sub = mkSubFile(buf,head,filename,sub)    buf = []  if len(buf) != 0:   sub = mkSubFile(buf,head,filename,sub)  finally:  fin.close() if __name__ == '__main__': begin = time.time() splitByLineCount('盂縣.csv',600000) end = time.time() print('time is %d seconds ' % (end - begin))

測試結果:

1.4GB的csv文件,13列數據,切分成23個小文件,耗時55秒。

以上這篇用Python實現大文本文件切割的方法就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持武林站長站。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 丽江市| 佛冈县| 长治市| 海淀区| 彭水| 扶沟县| 改则县| 昌黎县| 旬邑县| 郧西县| 镇安县| 同仁县| 河北省| 大关县| 鄄城县| 白玉县| 盐池县| 安塞县| 怀柔区| 监利县| 嘉定区| 香格里拉县| 铁力市| 建宁县| 静安区| 蓬莱市| 双桥区| 丹凤县| 巴林左旗| 武山县| 镇宁| 庆云县| 南安市| 夏津县| 三门峡市| 邹城市| 根河市| 巍山| 杭锦后旗| 翼城县| 大竹县|