如何在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内容?