新技能 get —— Python 断点续传下载文件
2017-03-24 12:44
309 查看
from urllib.request import urlretrieve import sys import os prev_reported_download_percent = None # 首先定义下载 hook,作为 urllib.request.urlretrive 的关键字参数 def download_hook(count, block_size, total_size): """ 接口是写死的 """ global prev_reported_download_percent percent = int(count*block_size*100/total_size) if prev_reported_download_percent != percent: if percent % 5 == 0: sys.stdout.write('%s%%' % percent) sys.stdout.flush() else: sys.stdout.write('.') sys.stdout.flush() prev_reported_download_percent = percent def maybe_download(filename, force=False): """ force 表示是否强制下载 """ if force or not os.path.exists(filename): print('Attempting to download') filename, _ = urlretrieve(url+filename, filename, reporthook=download_hook) # url+filename:表示文件的 url 地址, # filename 则为保存到本地时的文件名 print('\nDownload completed!') # statinfo = os.stat(filename) return filename
比如对于
http://ufldl.stanford.edu/housenumbers/网站下的
train.tar.gz/
test.tar.gz两文件,客户端的调用方式为:
url = 'http://ufldl.stanford.edu/housenumbers/' train_filename = maybe_download('train.tar.gz') test_filename = maybe_download('test.tar.gz')
相关文章推荐
- python实现断点续传下载文件
- 使用requests.get下载大文件-Python
- python ftp上传下载文件,支持断点续传
- python实现断点续传下载文件
- python requests.get() 下载大文件
- delphi IdHTTP实现Get方法下载文件,断点续传
- Source Insight 的 Python 语言定义文件下载
- 使文件下载的自定义连接支持 FlashGet 的断点续传多线程链接下载! C#/ASP.Net 实现!
- 用ASP实现断点续传下载远程文件
- Python处理MLDonkey 下载中文文件乱码问题
- JSP文件下载及出现getOutputStream() has already been called for ...的解决方法
- Source Insight 的 Python 语言定义文件下载
- 菜鸟学Python(11):在Django中怎么下载任意类型的文件?
- JSP文件下载及出现getOutputStream() has already been called for this response的解决方法(转)
- 使文件下载的自定义连接支持 FlashGet 的断点续传多线程链接下载! JSP/Servlet 实现!
- 菜鸟学Python(11):在Django中怎么下载任意类型的文件?
- 在ASP.NET中支持断点续传下载大文件
- 如何使 FlashGet "正常合法" 下载 Session 中的自定义文件链接呢? JSP/Servlet 实现!
- Python处理MLDonkey 下载中文文件乱码问题 (2)
- 在ASP.NET中支持断点续传下载大文件