当前位置: 首页 > 面试题库 >

使用Python请求库保存大文件

呼延沈义
2023-03-14
问题内容

我知道获取网址非常简单requests.get,我可以获取原始响应正文并将其保存到文件中,但是对于大型文件,是否可以直接流式传输到文件?就像我要下载电影或类似的东西吗?


问题答案:

奇怪的是,请求没有什么简单的方法。您必须遍历响应并将这些块写入文件:

response = requests.get('http://www.example.com/image.jpg', stream=True)

# Throw an error for bad status codes
response.raise_for_status()

with open('output.jpg', 'wb') as handle:
    for block in response.iter_content(1024):
        handle.write(block)

我通常只是使用urllib.urlretrieve()。它可以工作,但是如果您需要使用会话或某种身份验证,那么上面的代码也可以工作。



 类似资料:
  • 可能重复: 如何使用请求下载图像 我知道获取url就像,我可以获取原始响应主体并将其保存到文件中,但对于大型文件,有没有直接流式处理到文件的方法?比如说,如果我下载了一部电影或者别的什么?

  • 问题内容: 我正在尝试从网站下载PDF文件并将其保存到磁盘。我的尝试因编码错误而失败,或者导致PDF空白。 我知道这是某种编解码器问题,但我似乎无法使其正常工作。 问题答案: 在这种情况下,您应该使用: 从文件: 对于非文本请求,您还可以字节形式访问响应主体: 因此,这意味着:将输出作为字符串对象返回,在下载 文本文件 时使用它。如HTML文件等 并以字节对象返回输出,在下载 二进制文件 时使用它

  • 如何在请求后使用库(在python中) 将所有cookie保存在文件中,然后从文件中还原cookie。

  • 问题内容: 请求是一个非常不错的库。我想用它来下载大文件。问题是不可能将整个文件保留在内存中,我需要分块读取它。这是以下代码的问题 由于某种原因,它无法按这种方式工作。仍将响应加载到内存中,然后再将其保存到文件中。 更新 如果你需要一个小型客户端,可以从FTP下载大文件,则可以在此处找到它。它支持多线程和重新连接(它确实监视连接),还可以为下载任务调整套接字参数。 问题答案: 使用以下流代码,无论

  • 我正试图找到一种方法来保存我从POST请求中获得的图像,到目前为止,我找到的所有解决方案都没有效果,例如,这个。 上述解决方案的问题是,我只是得到了一个超时错误。 我现在试着稍微改变一下代码,但仍然不起作用,你能帮我吗? 我得到的错误是"json.decoder.JSONDecodeError:期望值:第1行第1列(char 0)"