栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

使用Python对文本文件进行排序

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

使用Python对文本文件进行排序

不要在内存中排序1000万行。分批拆分:

  • 运行100 100k行排序(使用文件作为迭代器,结合

    islice()
    或类似地选择批处理)。写出单独的文件放在其他位置。

  • 合并排序的文件。这是一个合并生成器,您可以传递100个打开的文件,并按排序的顺序显示行。逐行写入新文件:

    import operator

    def mergeiter(iterables, *kwargs):
    “”“Given a set of sorted iterables, yield the next value in merged order

    Takes an optional `key` callable to compare values by."""iterables = [iter(it) for it in iterables]iterables = {i: [next(it), i, it] for i, it in enumerate(iterables)}if 'key' not in kwargs:    key = operator.itemgetter(0)else:    key = lambda item, key=kwargs['key']: key(item[0])while True:    value, i, it = min(iterables.values(), key=key)    yield value    try:        iterables[i][0] = next(it)    except StopIteration:        del iterables[i]        if not iterables: raise


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/391242.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号