python实现下载文件的三种方法


Posted in Python onFebruary 09, 2017

Python开发中时长遇到要下载文件的情况,最常用的方法就是通过Http利用urllib或者urllib2模块。

当然你也可以利用ftplib从ftp站点下载文件。此外Python还提供了另外一种方法requests。

下面来看看三种方法是如何来下载zip文件的:

方法一:

import urllib 
import urllib2 
import requests
print "downloading with urllib" 
url = 'https://3water.com//test/demo.zip' 
print "downloading with urllib"
urllib.urlretrieve(url, "demo.zip")

方法二:

import urllib2
print "downloading with urllib2"
url = 'https://3water.com//test/demo.zip' 
f = urllib2.urlopen(url) 
data = f.read() 
with open("demo2.zip", "wb") as code:   
  code.write(data)

方法三:

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

看起来使用urllib最为简单,一句语句即可。当然你可以把urllib2缩写成:

f = urllib2.urlopen(url) 
with open("demo2.zip", "wb") as code:
  code.write(f.read())

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
在Python中操作时间之strptime()方法的使用
Dec 30 Python
基python实现多线程网页爬虫
Sep 06 Python
Python使用Scrapy保存控制台信息到文本解析
Dec 27 Python
python3使用SMTP发送HTML格式邮件
Jun 19 Python
Python中的CSV文件使用"with"语句的方式详解
Oct 16 Python
python语言基本语句用法总结
Jun 11 Python
使用turtle绘制五角星、分形树
Oct 06 Python
Python算法中的时间复杂度问题
Nov 19 Python
Django自定义全局403、404、500错误页面的示例代码
Mar 08 Python
jupyter notebook清除输出方式
Apr 10 Python
使用tensorflow实现VGG网络,训练mnist数据集方式
May 26 Python
Django-simple-captcha验证码包使用方法详解
Nov 28 Python
Python如何实现守护进程的方法示例
Feb 08 #Python
详解Python中表达式i += x与i = i + x是否等价
Feb 08 #Python
Python实现的多线程http压力测试代码
Feb 08 #Python
Python实现定时任务
Feb 08 #Python
python使用matplotlib绘制柱状图教程
Feb 08 #Python
Python实现简单的多任务mysql转xml的方法
Feb 08 #Python
python使用matplotlib绘制折线图教程
Feb 08 #Python
You might like
火车采集器 免费版使出收费版本功能实现原理
2009/09/17 PHP
使用php检测用户当前使用的浏览器是否为IE浏览器
2013/12/03 PHP
实现PHP+Mysql无限分类的方法汇总
2015/03/02 PHP
ThinkPHP3.2.3数据库设置新特性
2015/03/05 PHP
php获取远程文件的内容和大小
2015/11/03 PHP
php实现分页显示
2015/11/03 PHP
php与c 实现按行读取文件实例代码
2017/01/03 PHP
[原创]PHP正则匹配中英文、数字及下划线的方法【用户名验证】
2017/08/01 PHP
php+layui数据表格实现数据分页渲染代码
2019/10/26 PHP
用jscript启动sqlserver
2007/06/21 Javascript
jQuery html() in Firefox (uses .innerHTML) ignores DOM changes
2010/03/05 Javascript
javascript中RegExp保留小数点后几位数的方法分享
2013/08/13 Javascript
密码框显示提示文字jquery示例
2013/08/29 Javascript
js事件监听机制(事件捕获)总结
2014/08/08 Javascript
js通过location.search来获取页面传来的参数
2014/09/11 Javascript
javascript面向对象之共享成员属性与方法及prototype关键字用法
2015/01/13 Javascript
javascript实现漂亮的拖动层,窗口拖拽特效
2015/04/24 Javascript
微信小程序 Audio API详解及实例代码
2016/09/30 Javascript
Vue2.0用 watch 观察 prop 变化(不触发)
2017/09/08 Javascript
Vuex 进阶之模块化组织详解
2018/01/12 Javascript
vue+SSM实现验证码功能
2018/12/07 Javascript
如何阻止小程序遮罩层下方图层滚动
2019/09/05 Javascript
[01:08]2014DOTA2展望TI 剑指西雅图LGD战队专访
2014/06/30 DOTA
numpy自动生成数组详解
2017/12/15 Python
TensorFlow实现Batch Normalization
2018/03/08 Python
python使用folium库绘制地图点击框
2018/09/21 Python
浅谈Python中的全局锁(GIL)问题
2019/01/11 Python
使用python实现抓取腾讯视频所有电影的爬虫
2019/04/15 Python
BOSE德国官网:尽探索之力,享音乐之极
2016/12/11 全球购物
英国男士时尚网站:Dandy Fellow
2018/02/09 全球购物
美国领先的低折扣旅行网站:Hotwire
2019/01/19 全球购物
工程专业毕业生自荐信范文
2013/12/25 职场文书
任命通知范文
2015/04/21 职场文书
2015年文明创建工作总结
2015/04/30 职场文书
redis 存储对象的方法对比分析
2021/08/02 Redis
python字典进行运算原理及实例分享
2021/08/02 Python