如何在Python中加快gzip文件的处理速度

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在Python中加快gzip文件的处理速度相关的知识,希望对你有一定的参考价值。

我需要从文件values([0]-position, delimeter '|')创建权重为gzip的uniq 1.5 GB列表。但是处理时间要超过2.5小时,请帮助加快处理速度。

import gzip
import time

with gzip.open("gzipfilename.gz", "rb") as gz:
    uniqSub = []
    for i in enumerate(gz):
        sepValues = str(gz.readline()).split("|")
        if sepValues[0] not in uniqSub:
            uniqSub.append(sepValues[0])
    print(len(uniqSub))
答案
import gzip
import time

with gzip.open("gzipfilename.gz", "rb") as gz:
    uniqSub = set()
    for line in gz:
        sep, _ = line.split(b'|', 1)
        uniqSub.add(sep)
    print(len(uniqSub))

    # If you need to print...
    for item in uniqSub:
        print(str(item, 'utf-8'))

这简化了对行的读取,由于未使用而删除了enumerate(),由于仅使用第一个令牌而最多分裂了一次,并且使用了set来加速set成员资格测试。它应该更快。

以上是关于如何在Python中加快gzip文件的处理速度的主要内容,如果未能解决你的问题,请参考以下文章

如何在XHR onProgress函数中使用缩减/ gzipped内容?

如何在显示大量文本时加快滚动响应速度

Linux 加快解压速度,使用 pigz 并行加速 Linux 压缩与解压

Apache开启GZIP压缩功能方法

使用Gzip压缩数据,加快页面访问速度

如何加快从磁盘加载XML文档的速度?