当一个 .txt 文件的数据过于庞大,此时想要对数据进行排序就需要先将数据进行切割,然后通过归并排序,最终实现对整体数据的排序。要实现这个过程我们需要进行以下几步:获取总数据行数;根据行数按照自己的需要对数据进行切割;对每组数据进行排序 最后对所有数据进行归并排序。
下面我们就来实现这整个过程:
一:获取总数据的行
def get_file_lines(file_path):
# 目标文件的路径
file_path = str(file_path)
with open(file_path, 'rb') as file:
# 定义行数
i = 0
while True:
# 一次读取一行数据
line = file.readline()
if not line :
break
else:
# 每读一行,行数加一
i += 1
#设置进度条,每当i读取1000000行时打印一次i
# 每当读取1000000的整数倍行时,打印行数(进度条)
if i % 1000000 == 0:
print(i)
# 打印总行数
print(i)
return i
二:对数据进行切割
# 定义均等切割函数,num是待切割的文件的行数的值,n为切割份数,file_path是待切割的文件,file_dir是切割好的文件写入的目录
def evg_split(num, n, file_path, file_dir):
last

本文介绍了如何处理大型.txt文件的排序问题,通过数据切割和归并排序策略。首先获取文件总行数,接着按需求切割数据,再对每个数据块进行排序,最后使用归并排序算法整合所有已排序的数据。
最低0.47元/天 解锁文章
1538

被折叠的 条评论
为什么被折叠?



