码迷,mamicode.com
首页 > 编程语言 > 详细

python实现断点续传下载文件

时间:2015-08-30 17:40:04      阅读:298      评论:0      收藏:0      [点我收藏+]

标签:python   断点续传   

最近的任务里有一个功能是要我从日志服务器实时跟新日志到本地,日志在不断新增内容就需要我隔一段时间从上次下载的位置继续下载,并写入本地文件上次写完的位置后面。

                headers = {'Range': 'bytes=%d-' % local_file_dict.get(packet_path+k)}
                web_log = requests.get(packet_web_path+k, stream=True, headers=headers)
                with open(packet_path+k, 'ab') as local_file:
                    for chunk in web_log.iter_content(chunk_size=1024):
                        if chunk:
                            local_file.write(chunk)
                            local_file.flush()

这里用的是requests.get()和他的一些参数

requests.get(url, stream=True, headers=headers)
要实现断点续传,get()的stream参数要设为True在远程打开的是一个流,而headers里放的是续传的一些参数,这里的

headers = {'Range': 'bytes=%d-' % local_file_size}
就是获得本地文件的大小作为续传的起点,还有就是按bytes

然后以

iter_content(chunk_size=xxx)

的方式逐chunk_size地遍历数据,并写入local_file


local_file.flush()

刷新也很重要,实时保证一点点的写入。


版权声明:本文为博主原创文章,未经博主允许不得转载。

python实现断点续传下载文件

标签:python   断点续传   

原文地址:http://blog.csdn.net/xiaopangxia/article/details/48105573

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!