微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

使用urllib2将大型二进制文件流式传输到文件

如何解决使用urllib2将大型二进制文件流式传输到文件

没有理由一行一行地工作(小块并且需要Python来为您找到行尾!-),只需将其分成更大的块即可,例如:

# from urllib2 import urlopen # Python 2
from urllib.request import urlopen # Python 3

response = urlopen(url)
CHUNK = 16 * 1024
with open(file, 'wb') as f:
    while True:
        chunk = response.read(CHUNK)
        if not chunk:
            break
        f.write(chunk)

尝试各种CHUNK尺寸,找到适合您需求的“最佳位置”。

解决方法

我使用以下代码将大型文件从Internet流化为本地文件:

fp = open(file,'wb')
req = urllib2.urlopen(url)
for line in req:
    fp.write(line)
fp.close()

这可行,但下载速度很慢。有没有更快的方法?(文件很大,所以我不想将它们保留在内存中。)

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。