博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
python实现文件下载的方法总结
阅读量:6496 次
发布时间:2019-06-24

本文共 1441 字,大约阅读时间需要 4 分钟。

hot3.png

前端时间遇到一个通过url下载文件的需求,只需要简单的编写一个py脚本即可。从网上搜了下python实现文件下载的方法,总结如下,备查。

以下方法均已测试,环境win8.1  python2.6/2.7

待补充。-- 20150507

 

方法一:

使用  模块提供的 urlretrieve() 函数。urlretrieve() 方法直接将远程数据下载到本地。

urlretrieve(url, [filename=None, [reporthook=None, [data=None]]])

       说明:

  • 参数 finename 指定了保存本地路径(如果参数未指定,urllib会生成一个临时文件保存数据。)

  • 参数 reporthook 是一个回调函数,当连接上服务器、以及相应的数据块传输完毕时会触发该回调,我们可以利用这个回调函数来显示当前的下载进度。

  • 参数 data 指 post 到服务器的数据,该方法返回一个包含两个元素的(filename, headers)元组,filename 表示保存到本地的路径,header 表示服务器的响应头。 

实例:

#!/usr/bin/python#encoding:utf-8import urllibimport osdef Schedule(a,b,c):    '''''    a:已经下载的数据块    b:数据块的大小    c:远程文件的大小   '''    per = 100.0 * a * b / c    if per > 100 :        per = 100    print '%.2f%%' % perurl = 'http://www.python.org/ftp/python/2.7.5/Python-2.7.5.tar.bz2'#local = url.split('/')[-1]local = os.path.join('/data/software','Python-2.7.5.tar.bz2')urllib.urlretrieve(url,local,Schedule)######output#######0.00%#0.07%#0.13%#0.20%#....#99.94%#100.00%

来源:

方法二:

使用urllib的urlopen()函数

实例:

import urllib2print "downloading with urllib2"url = 'http://www.pythontab.com/test/demo.zip' f = urllib2.urlopen(url) data = f.read() with open("demo2.zip", "wb") as code:         code.write(data)

 

方法三:

使用requests模块

requests模块下载:

实例:

import requests print "downloading with requests"url = 'http://www.pythontab.com/test/demo.zip' r = requests.get(url) with open("demo3.zip", "wb") as code:     code.write(r.content)

 

转载于:https://my.oschina.net/u/877170/blog/411730

你可能感兴趣的文章
如何打开注册表编辑器
查看>>
【管理心得之六】判定工作是否完成,标准是什么
查看>>
《直播疑难杂症排查系列》之一 :播放失败
查看>>
Go eclipse plugin
查看>>
ln命令总结
查看>>
内部排序冒泡排序、插入排序、选择排序、快速排序的算法和PHP实现
查看>>
ASP.NET MVC Form验证
查看>>
学习OpenSeadragon之三 (覆盖层Overlayer的使用)
查看>>
【noi 2.6_1759】LIS 最长上升子序列(DP,3种解法)
查看>>
【洛谷 p3371】模板-单源最短路径(图论)
查看>>
c#生成静态html文件,封装类
查看>>
[git]图解git常用命令
查看>>
洛谷 P2947 [USACO09MAR]向右看齐Look Up【单调栈】
查看>>
zoj 2313 Chinese Girls' Amusement(2-A)
查看>>
Iterator接口分析
查看>>
Tomcat v7.0 Server at localhost are already in use,tomcat提示端口被占用,tomcat端口已经被使用,tomcat端口占用...
查看>>
UGUI之控件以及按钮的监听事件系统
查看>>
Codeforces 814A - An abandoned sentiment from past(水题)
查看>>
POJ 2349 Arctic Network (最小生成树Kruskal)
查看>>
vmstat
查看>>