当前位置: 首页 > 知识库问答 >
问题:

使用Python请求库保存一个大文件[重复]

柯昆杰
2023-03-14

可能重复:
如何使用请求下载图像

我知道获取url就像请求一样简单。获取,我可以获取原始响应主体并将其保存到文件中,但对于大型文件,有没有直接流式处理到文件的方法?比如说,如果我下载了一部电影或者别的什么?

共有1个答案

简成仁
2023-03-14

奇怪的是,请求没有任何简单的方法。您必须迭代响应并将这些块写入文件:

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()。它可以工作,但是如果您需要使用会话或某种身份验证,上面的代码也可以工作。

 类似资料:
  • 问题内容: 我知道获取网址非常简单,我可以获取原始响应正文并将其保存到文件中,但是对于大型文件,是否可以直接流式传输到文件?就像我要下载电影或类似的东西吗? 问题答案: 奇怪的是,请求没有什么简单的方法。您必须遍历响应并将这些块写入文件: 我通常只是使用。它可以工作,但是如果您需要使用会话或某种身份验证,那么上面的代码也可以工作。

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

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

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

  • 问题内容: 我正在尝试使用带有Python请求的文件(使用Chrome扩展程序生成)访问经过身份验证的网站: 它不会引发任何错误或异常,但是会错误地显示登录屏幕。但是,我知道我的cookie文件是有效的,因为我可以通过使用它成功地检索我的内容。知道我在做什么错吗? 编辑: 我跟踪,并且可以验证cookie被正确解析(即他们的正确的价值观,,等标记)。但是由于事务仍在生成登录表单,因此似乎必须做其他