#
# 大文件分割成小文件(方便打开查看,大文件打开需要很多时间)
#
import sys as sys
import os
import re
#要分割的文件
source_file_path='F:/#00.log'
sub_file_line_cnt = 1780000 #子文件的行数
#单个文件分割成小文件,source_file:单个文件的绝对路径
def one_big_file_split_func(source_file):
f = open(source_file,'r') #打开文件
source_file_line_cnt = len(f.readlines()) #获取文件行数
# 截取文件名中的数字,为了命名使用
idx_rules = re.compile(r'#(.*?).log')
newfile_name = re.findall(idx_rules,source_file)[0]
i = 0 #设置计数器
while i < source_file_line_cnt : #轮询到末尾行
with open(str(newfile_name) + '_' + str(i),'w') as f1: #创建子文件
for j in range(0, sub_file_line_cnt) : #这里设置每个子文件的大小
if i < source_file_line_cnt : #这里判断是否已结束,否则最后可能报错
f1.writelines(f.readline())
i = i+1
else:
break
f.close()
#文件夹内所有文件分割,all_file_path:文件夹路径
def all_big_file_split_func(all_file_path):
# 遍历所有#***.log
for folders,subfolders,files in os.walk(all_file_path):
if file.endswith('.log'): #文件夹内要分割的文件后缀(根据自己实际选择)
# 构造绝对路径
file_name = os.path.join(folders,file)
one_big_file_split_func(file_name)
pass
all_file_path = "xxxxxxxxxx"
if __name__ == '__main__':
#one_big_file_split_func(source_file_path)
all_big_file_split_func(all_file_path)
pass
01_数据分析_大文件分割成小文件
最新推荐文章于 2023-09-08 09:44:49 发布