使用部分下载 (HTTP) 下载文件

2023-12-13

有没有办法使用部分下载功能通过 HTTP 下载巨大且仍在增长的文件?

看来这段代码每次执行时都会从头开始下载文件:

import urllib
urllib.urlretrieve ("http://www.example.com/huge-growing-file", "huge-growing-file")

我想要:

  1. 仅获取新写入的数据
  2. 仅当源文件变小(例如已旋转)时才从头开始下载。

可以使用范围标头进行部分下载,以下将请求选定的字节范围:

req = urllib2.Request('http://www.python.org/')
req.headers['Range'] = 'bytes=%s-%s' % (start, end)
f = urllib2.urlopen(req)

例如:

>>> req = urllib2.Request('http://www.python.org/')
>>> req.headers['Range'] = 'bytes=%s-%s' % (100, 150)
>>> f = urllib2.urlopen(req)
>>> f.read()
'l1-transitional.dtd">\n\n\n<html xmlns="http://www.w3.'

使用此标头您可以恢复部分下载。就您而言,您所要做的就是跟踪已下载的大小并请求新的范围。

请记住,服务器需要接受此标头才能正常工作。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用部分下载 (HTTP) 下载文件 的相关文章

随机推荐

  • 为什么 request.FILES["file"].open() 是 None,尽管 request.FILES.["file"].name 效果很好?

    我正在尝试使用 ajax 将图像文件获取到 Django views py 中 我可以打印文件名和大小 但是当我打开文件时 它变成了 None 我尝试打开图像的原因是将其用于视觉分析 目前我正在开发 Django 1 11 python 3
  • 如何使用 Spring Config Service 设置本地配置属性

    所以我最近学习了 Spring Cloud 这个很棒的配置服务 经过一番努力 我能够设置我们的分布式应用程序 多个节点从一个配置服务器读取配置属性 然而 我不知道如何解决的一个问题是 即使大多数道具在多个节点上都是相同的 但某些道具需要本地
  • 在Python中,如何对嵌套的整数列表进行数字求和: [[1,0], [1,1], [1,0]] → [3,1]

    我有一个形式为的数组 a 1 0 1 1 0 0 0 1 1 0 我需要对嵌套列表中相同索引的所有值求和 以便上面的结果 3 2 这可以通过以下代码来实现 b 0 len a 0 for x in a b map sum zip b x S
  • 隐藏空列

    我有一个有 75 列的表 仅显示 in 中的值的 sql 语句是什么 thanks 确实 类似的声明不存在 在SELECT您只能对行使用条件过滤器 不能对列使用条件过滤器 但你可以尝试写一个 有点棘手 程序 它必须检查哪些列至少包含一个不包
  • 带有文档 ID 的 Swift Firebase 自定义对象

    有没有办法创建自定义 Swift 对象 将 Firebase 文档 ID 分配给对象参数 代码取自这里 https firebase google com docs firestore query data get data custom
  • AttributeError:类型对象“Callable”没有属性“_abc_registry”

    当我打开 jupyter 笔记本时出现错误 我使用谷歌寻求帮助 但找不到答案 我在 macOS mojave 上使用 python 3 7 2 我重新安装了我的 Jupiter 笔记本 但没有任何变化 当我输入jupyter笔记本时 它向我
  • WIX If...else 条件使用注册表

    我试图通过检查注册表值在 WIX 中使用 if else 条件
  • 选择从月初到当前日期的记录

    我正在尝试选择在当月开始和当天之间添加到数据库中的记录 我或多或少知道如何获取当天以及特定时间段内的记录 但我该如何得到它 以便从当前日历月的月初开始 DECLARE sm DATETIME SET sm DATEADD DAY 1 DAY
  • 解释器环境中的python垃圾收集和_下划线

    如果一个类是在解释器环境中定义的 class C object def init self val self x val 然后实例化 不带名称 gt gt gt C 1 gt gt gt C 2 gt gt gt 那么我们可以使用下划线 来
  • 序列化/反序列化机制

    说吧 我有课X它有一个字段值 即 class X implements Serializable private int value 此外 它还有此处未显示的 getter 和 setter 这个类是序列化的 在反序列化时 同一类具有值字段
  • jsPDF添加图表

    我正在使用 jsPDF 通过 Appcelerator 的 Titanium 生成 PDF 文档 现在我需要添加一个包含两个部分的简单饼图 我怎样才能以最简单的方式做到这一点 它不需要什么花哨的东西 我正在考虑首先生成图像 然后将该图像添加
  • Android Studio 问题缺少 debug.keystore

    每次我想签署我的 aok 时 我都会失败Missing debug keystore它说它实际上应该位于此路径 Store 下 C Users jamie android debug keystore但没有任何密钥库文件 我怎样才能创建一个
  • 通过优先考虑其中一列来合并数据框中的 2 列

    假设我有以下 data frame Value1 Value2 a
  • PHP 正则表达式无法处理数据库中的字符串

    preg replace当我在从数据库获取的字符串上使用它时 不会返回所需的结果 result DB connection connection gt select my query foreach result as row prints
  • PopupWindow 内的 ListView 的问题

    我有一个ListView in a PopupWindow The PopupWindow像这样初始化 window setContentView root window setTouchable true window setFocusa
  • 在 wpf 中找不到事件“SelectedIndexChanged”

    在 winform 中 当我创建组合框时 我可以找到事件 SelectedIndexChanged 活动工作after组合框的索引已更改 private void comboBox1 SelectedIndexChanged object
  • bash 通过匹配列合并文件

    我有两个文件 File1 12 abc 34 cde 42 dfg 11 df 9 e File2 23 abc 24 gjr 12 dfg 8 df 我想逐列合并文件 如果第 2 列相同 输出如下 File1 File2 12 23 ab
  • Angular2中的递归动态模板编译

    我的一些工作基于此处描述的相同问题 使用 Angular 2 0 编译动态组件的动态模板 如何使用 创建动态模板来使用 Angular 2 0 编译动态组件 可以找到上述问题中描述的工作plunkerhere 如果动态详细信息尝试创建另一个
  • 如何通过切换视图来改变小部件?

    我想要一个平滑的动画 可以在以前的比例和位置之间切换到当前的比例和位置 但看起来它并不是之前的精确比例或位置 为什么唯一的第一个小部件具有反向比例 gt ZoomIn 而不是 ZoomOut 我添加了一个 isSet 变量 因为第一帧显示的
  • 使用部分下载 (HTTP) 下载文件

    有没有办法使用部分下载功能通过 HTTP 下载巨大且仍在增长的文件 看来这段代码每次执行时都会从头开始下载文件 import urllib urllib urlretrieve http www example com huge growi