python按指定行数把大文件进行拆分
如图大文件有7000多万行,大小为16g
需要拆分成多个200万行的小文件
代码如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
|
# -*- coding:utf-8 -*-
from datetime import datetime
def main():
source_dir = '/data/u_lx_data/zhangqm/sh/yanjie/liuxuesheng/jz_yuanshi_list0206.txt'
target_dir = '/data/u_lx_data/zhangqm/sh/yanjie/liuxuesheng/split/'
# 计数器
flag = 0
# 文件名
name = 1
# 存放数据
datalist = []
print ( "开始。。。。。" )
print (datetime.now().strftime( '%y-%m-%d %h:%m:%s' ))
with open (source_dir, 'r' ) as f_source:
for line in f_source:
flag + = 1
datalist.append(line)
if flag = = 2000000 :
with open (target_dir + "jz_yuanshi_list_" + str (name) + ".txt" , 'w+' ) as f_target:
for data in datalist:
f_target.write(data)
name + = 1
flag = 0
datalist = []
# 处理最后一批行数少于200万行的
with open (target_dir + "jz_yuanshi_list_" + str (name) + ".txt" , 'w+' ) as f_target:
for data in datalist:
f_target.write(data)
print ( "完成。。。。。" )
print (datetime.now().strftime( '%y-%m-%d %h:%m:%s' ))
if __name__ = = "__main__" :
main()
|
结果如下:
总共产生39个文件,最后一个文件行数760821,这样就ok啦
经测试16g文件所需时间如图:不到两分钟
以上这篇使用python进行拆分大文件的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持服务器之家。
原文链接:https://blog.csdn.net/IBoyMan/article/details/79419347