目前我有一个脚本, 从帝联的 CDN 外链获取一下文件作为备份.

使用的是

Python 2.7.10

requests 2.8.1

目前碰到一个情况, 使用 requests 下载大文件的时候会出现下载文件不完整的情况, 出现的概率非常大, 应该不会是网络原因导致的. 相关代码概括如下:

requests.adapters.DEFAULT_RETRIES = 5

response = requests.get(url, stream=True)

status = response.status_code

if status == 200:

total_size = int(response.headers['Content-Length'])

with open('xxx', 'wb') as of:

for chunk in response.iter_content(chunk_size=102400):

if chunk:

of.write(chunk)

下载完毕后我会使用如下方式和上面的 total_size 进行对比

with open('xxx', 'r') as f:

if isinstance(f, file):

length = os.fstat(f.fileno()).st_size

if total_size == length:

True

else:

False

代码逻辑如上. 但是对于 100M 以上的文件, 几乎都是保存在本地的文件和获取的响应头里面的 content-length 不一致.

是我 requests 的用法不对吗? 还是有其他更好的办法可以保证文件能完整的下载呢?

python requests下载文件很慢-python requests 下载大文件不完整相关推荐

  1. 快速传输大文件,怎么通过网络传大文件给对方(1G以上)

    在生活和工作中,我们总是要发送一些比较大的文件给别人,或者在自己的设备之间.在互联网日益发达的今天,我们可以用什么方法通过互联网快速传输大文件,发送1G以上的文件? 一.使用QQ传 在电脑上打开QQ, ...

  2. python -m http.server 搭建一个简易web下载服务器(可用于快速发送大文件)

    在工作过程中需要经常发送安装包等大文件给同事,亲测共享文件夹拷贝.QQ.微信等聊天工具,大文件传输速度效率不高. 然而局域网内使用python搭建的简易下载服务器速度比较快,百兆网卡下载速度随便达到1 ...

  3. python写二进制大文件,如何将文件写入二进制文件,或在大文件中编辑单行– Python...

    我有几个大型XML文件,由于某些无法识别的字符而无法解析,投诉类似于: xml.etree.ElementTree.ParseError: not well-formed (invalid token ...

  4. python文件关键行数_Python计算大文件行数方法及性能比较

    如何使用Python快速高效地统计出大文件的总行数, 下面是一些实现方法和性能的比较. 1.readline读所有行 使用readlines方法读取所有行: def readline_count(fi ...

  5. python读取大文件内容_Python模块linecache处理大文件

    linecache模块简介 Python处理大文件需要用到Linecache模块. linecache模块的作用是将文件内容读取到内存中,进行缓存,而不是每次都要从硬盘中读取,这样效率提高很多,又省去 ...

  6. python 大文件分片上传_Python实现大文件分片上传

    转载请注明出处:http://blog.csdn.net/jinixin/article/details/77545140 引言想借着这篇文章简要谈谈WebUploader大文件上传与Python结合 ...

  7. centos 下载文件很慢_百度云盘上传文件和下载文件慢的解决办法

    百度云盘上传文件和下载文件慢的解决办法 一:上传文件慢 1. 左下角点击搜索,输入cmd,右键以管理员身份运行 2. 在弹出的窗口中输入netsh interface tcp set global a ...

  8. python tcp黏包和struct模块解决方法,大文件传输方法及MD5校验

    https://www.cnblogs.com/zaizai1573/p/10230973.html 一.TCP协议 粘包现象 和解决方案 黏包现象 让我们基于tcp先制作一个远程执行命令的程序(命令 ...

  9. linux命令dd创建虚拟硬盘,每日一题.PYTHON如何模拟LINUX的dd命令快速创建大文件?...

    原文数据: 无 具体要求: 1. 模拟Linux的dd命令快速创建大文件 代码实现: # -*- coding: utf-8 -*- """ # # Authors: l ...

最新文章

  1. Sass (Syntactically Awesome StyleSheets)
  2. 使用TensorFlow1.0及以上版本的问题
  3. spring Boot打可执行的jar包
  4. 单调栈之Next Greater Number
  5. 模仿Spring实现一个类管理容器
  6. 数控车椭圆编程实例带图_数控车床编程教程,图文实例详解
  7. “System.Data.SqlClient.SqlException: A transport-level error has occurred when receiving results fro
  8. 华为云PB级数据库GaussDB(for Redis)介绍第四期:高斯 Geo的介绍与应用
  9. 好想学python机器人_拥有自动学习的Python机器人-ChatterBot
  10. 可以扦插的花有哪些?
  11. Raj Reddy:从印度农村走出来的图灵奖得主
  12. 计算机作为信息处理工具 应用于科学研究,计算机2013春分章节试题及答案.doc
  13. [android]加载大量图片避免OOM
  14. python接口自动化测试二十二:文件下载
  15. springMVC+Mybatis实现查询分页
  16. WIN7安装MTK驱动(系统找不到指定文件!解决方案)
  17. 网易云信七年:「连接者」背后的「放大器」
  18. CSS 语法 网贷黑户正规查询系统,通过CSS选择器控制怎么查自己带过的网贷数量做一个个人网贷记录查询软件
  19. 970万,看美女是如何炼成巨贪的!
  20. 原创短视频被搬运,平台也会侵权吗

热门文章

  1. 《ArcGIS Engine+C#实例开发教程》第三讲 MapControl与PageLayoutControl同步
  2. 2015/09/09夜晚js继续学习
  3. ThinkPHP框架学习之CRUD
  4. Linuxnbsp;Oracle服务启动amp;停止脚本与开机自启动
  5. GridView控件添加鼠标移入移出时背景行变色的效果
  6. 用vs2005开发比delphi快多了
  7. 《学习之道》第四章学习语言和记忆痕迹
  8. Python后端相关技术/工具栈
  9. js运算符单竖杠“|”的用法和作用及js数据处理
  10. windows container (docker) 容器资料笔记