gpt4 book ai didi

python + urllib2 : streaming ends prematurely

转载 作者:行者123 更新时间:2023-11-28 17:52:10 25 4
gpt4 key购买 nike

我正在尝试使用 urllib2 和 zlib 以及来自这两个 stackoverflow 问题的技术在 python 中处理从互联网上提取的大型 gzip 文件:

这很好用,除了在读取文件的每个 block 之后,我需要对结果字符串执行一些操作,这涉及大量的拆分和迭代。这需要一些时间,当代码执行下一个 req.read() 时,它什么都不返回,程序结束,只读取了第一个 block 。

如果我注释掉其他操作,整个文件被读取并解压。代码:

d = zlib.decompressobj(16+zlib.MAX_WBITS)
CHUNK = 16 * 1024
url = 'http://foo.bar/foo.gz'
req = urllib2.urlopen(url)
while True:
chunk = req.read(CHUNK)
if not chunk:
print "DONE"
break
s = d.decompress(chunk)
# ...
# lots of operations with s
# which might take a while
# but not more than 1-2 seconds

有什么想法吗?

编辑:结果证明这是程序其他地方的错误,而不是 urllib2/zlib 处理中的错误。感谢所有提供帮助的人。如果您需要处理大型 gzip 文件,我可以推荐上面代码中使用的模式。

最佳答案

如果超时是问题,但不清楚是不是,您可以通过在中间放置一个队列并在另一个从队列读取的线程中执行处理来分离代码的输入读取和处理端。

您还可以减小块大小并减少每个循环的处理量。

关于 python + urllib2 : streaming ends prematurely,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7905779/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com