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

How to speed up of pocessing of gzip file in Python

我需要从文件 gzip 创建一个 uniq values([0]-position, delimeter '|') 列表,权重 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() 因为你没有使用它,最多拆分一次,因为你只使用第一个标记,并使用集合来加速集合会员测试。应该会更快。