python数据切割归并算法

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

    当一个 .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
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值