python下载文件的11种方式_Python 中常见的几种下载文件方法
下载比较小的文件:
# 方法一:使用urllib库
# -*- coding:utf-8 -*-
import urllib
import time
url = 'http://mvideo.spriteapp.cn/video/2017/0414' \
'/697de826-20b5-11e7-9c72-1866daeb0df1cut_wpcco.mp4'
print "downloading with urllib"
start = time.time()
urllib.urlretrieve(url, "video.mp4")
end = time.time()
print 'Finish in :', end - start
# 方法二:使用urllib2库
# -*- coding:utf-8 -*-
import urllib2
import time
url = 'http://mvideo.spriteapp.cn/video/2017/0414/' \
'697de826-20b5-11e7-9c72-1866daeb0df1cut_wpcco.mp4'
print "downloading with urllib2"
start = time.time()
data = urllib2.urlopen(url).read()
with open('video.mp4', 'wb') as video:
video.write(data)
end = time.time()
print 'Finish in :', end - start
# 方法三:使用requests库
# -*- coding:utf-8 -*-
import requests
import time
url = 'http://mvideo.spriteapp.cn/video/2017/0414/' \
'697de826-20b5-11e7-9c72-1866daeb0df1cut_wpcco.mp4'
print "downloading with requests"
start = time.time()
r = requests.get(url)
with open('video.mp4', 'wb') as video:
video.write(r.content)
end = time.time()
print 'Finish in :', end - start
下载比较大的文件:
# 方法一:使用urllib2库
# -*- coding:utf-8 -*-
import urllib2
import time
url = 'http://mvideo.spriteapp.cn/video/2017/0414/' \
'697de826-20b5-11e7-9c72-1866daeb0df1cut_wpcco.mp4'
r = urllib2.Request(url)
u = urllib2.urlopen(r)
start = time.time()
with open('video.mp4', 'w') as f:
while True:
tmp = u.read(1024)
if not tmp:
break
f.write(tmp)
end = time.time()
print 'Finish in :', end - start
# 方法二:使用requests库
# -*- coding:utf-8 -*-
import requests
import time
url = 'http://mvideo.spriteapp.cn/video/2017/0414/' \
'697de826-20b5-11e7-9c72-1866daeb0df1cut_wpcco.mp4'
# 当把get函数的stream参数设置成False时,
# 它会立即开始下载文件并放到内存中,如果文件过大,有可能导致内存不足。
# 当把get函数的stream参数设置成True时,它不会立即开始下载,
# 使用iter_content或iter_lines遍历内容或访问内容属性时才开始下载
r = requests.get(url, stream=True)
f = open("file_path", "wb")
start = time.time()
for chunk in r.iter_content(chunk_size=1024):
if chunk:
f.write(chunk)
f.flush()
# iter_content:一块一块的遍历要下载的内容
# iter_lines:一行一行的遍历要下载的内容
# 这两个函数下载大文件可以防止占用过多的内存,因为每次只下载小部分数据
end = time.time()
print 'Finish in :', end - start
python下载文件的11种方式_Python 中常见的几种下载文件方法相关推荐
- python中判断文件是否存在的三种方式_Python中判断文件是否存在的方法
Python中判断文件是否存在的方法 发布时间:2020-08-06 11:15:42 来源:亿速云 阅读:58 作者:小新 这篇文章主要介绍Python中判断文件是否存在的方法,文中介绍的非常详细, ...
- python中函数参数传递的三种方式_python中函数参数传递的几种方法
转自 http://www.douban.com/note/13413855/ Python中函数参数的传递是通过"赋值"来传递的.但这条规则只回答了函数参数传递的"战 ...
- Java中创建对象有哪几种方式,Java 中创建对象的4种方式--Java学习网
核心提示:Java 是面向对象的语言,不可避免的,"对象"这个概念是 Java 语言的核心部分,这里来简单讨论一下在 Java 中创建一般对象的方法. 总结下来有以下4种创建对象的 ...
- python读取文件的三种方式_python中读取文件的f.seek()方法
用于二进制文件中 F.seek方法 作用: 设置读写位置 F.seek(偏移量, whence=相对位置) 偏移量 大于0的数代表向文件末尾方向移动的字节数 小于0的数代表向文件头方向中移动的字节数 ...
- python字符串换行的三种方式_python中的字符串内部换行方法
python中的字符串内部换行方法 python里有两种在字符串内部换行的方式(使用一个print打印多行字符串). 首先使用\n的方法大家肯定都知道了. 然后是使用 ''' 三个单引号大方法. 在交 ...
- python有几种打开方式_Python中几个以“__”开头的方法介绍总结
本文我们来看谈 Python 中的特殊方法 __dir__, __slots__, __weakref____missing__, __contains__ 的简单介绍总结. __dir__ -> ...
- 用python的五种方式_Python模块重载的五种方法
环境准备 新建一个 foo 文件夹,其下包含一个 bar.py 文件 $ tree foo foo └── bar.py 0 directories, 1 file bar.py 的内容非常简单,只写 ...
- python中while语法格式_python中常见的三种句型if,while,for
原博文 2016-06-28 23:26 − 1.if语句: 特别说明:条件后面的冒号不能少,同样必须是英文字符. 特别特别说明:if内部的语句需要有一个统一的缩进,一般用4个空格.python用这种 ...
- python列表前加星号是什么_Python中的星号:用途及使用方法(1)
Python部落(python.freelycode.com)组织翻译,禁止转载,欢迎转发. 原作者:Trey Hunner Python中 *和**很常见.无论是对于编程萌新还是许多从其他编程语言( ...
最新文章
- vistualSVN server:Windows下SVN服务器利器
- php是音频吗,只要是用PHP和JS发布的HTML5是否可以播放音频?
- 企业网络安全之安全维度
- 微信小程序图表插件 echarts-for-weixin
- 硬盘物理序列号修改工具_精品软件:MHDD磁盘坏道扫描工具使用方法图解教程...
- java中static代码块与非静态代码块
- 信息学奥赛一本通(C++)在线评测系统——基础(一)C++语言—— 1050:骑车与走路
- 斗罗大陆真3D手游实力上线,带你感受魂兽猎杀的超燃时刻
- Theano 中文文档 0.9 - 7.2.6 Theano如何处理形状信息
- Makingware调用静态块,实现自定义html内容的常用方法(不需要修改模版部分)...
- Android:读取assets目录下文件(二)
- openCV播放视频的程序
- android sdk下载慢的解决方法
- Java使用lowagie根据模版动态生成PDF(无需额外设置系统字体)
- FOC之PI控制的理解
- 引用nbsp;TDA2030功放电路图
- uni-app的video禁止快进及seek()上的小坑
- 客户端服务器通信demo(续) -- 使用二进制协议 (附源码)
- 进程间同步---system v ipc 对象信号灯集
- 嵌入式睡眠监控报警仪的研究及设计
热门文章
- python 逗号作用 语句间_Python中逗号的三种作用
- springboot数据访问基本操作步骤
- but was actually of type 'com.sun.proxy.$Proxy**'的两种解决方法
- 整理Java相关的工具类Utils,持续更新中,建议收藏【目前更新至24】
- springboot+springsecurity+mybatis plus之用户授权
- java poi excel无法添加水印替代方法
- spring框架搭建第一天
- 操作系统 第五章【虚拟存储器】【MOOC答案】
- JSP、EL和JSTL-学习笔记02【MVC】
- 【Window / 浏览器】 常用 快捷键 整理