下载比较小的文件:

# 方法一:使用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 中常见的几种下载文件方法相关推荐

  1. python中判断文件是否存在的三种方式_Python中判断文件是否存在的方法

    Python中判断文件是否存在的方法 发布时间:2020-08-06 11:15:42 来源:亿速云 阅读:58 作者:小新 这篇文章主要介绍Python中判断文件是否存在的方法,文中介绍的非常详细, ...

  2. python中函数参数传递的三种方式_python中函数参数传递的几种方法

    转自  http://www.douban.com/note/13413855/ Python中函数参数的传递是通过"赋值"来传递的.但这条规则只回答了函数参数传递的"战 ...

  3. Java中创建对象有哪几种方式,Java 中创建对象的4种方式--Java学习网

    核心提示:Java 是面向对象的语言,不可避免的,"对象"这个概念是 Java 语言的核心部分,这里来简单讨论一下在 Java 中创建一般对象的方法. 总结下来有以下4种创建对象的 ...

  4. python读取文件的三种方式_python中读取文件的f.seek()方法

    用于二进制文件中 F.seek方法 作用: 设置读写位置 F.seek(偏移量, whence=相对位置) 偏移量 大于0的数代表向文件末尾方向移动的字节数 小于0的数代表向文件头方向中移动的字节数 ...

  5. python字符串换行的三种方式_python中的字符串内部换行方法

    python中的字符串内部换行方法 python里有两种在字符串内部换行的方式(使用一个print打印多行字符串). 首先使用\n的方法大家肯定都知道了. 然后是使用 ''' 三个单引号大方法. 在交 ...

  6. python有几种打开方式_Python中几个以“__”开头的方法介绍总结

    本文我们来看谈 Python 中的特殊方法 __dir__, __slots__, __weakref____missing__, __contains__ 的简单介绍总结. __dir__ -> ...

  7. 用python的五种方式_Python模块重载的五种方法

    环境准备 新建一个 foo 文件夹,其下包含一个 bar.py 文件 $ tree foo foo └── bar.py 0 directories, 1 file bar.py 的内容非常简单,只写 ...

  8. python中while语法格式_python中常见的三种句型if,while,for

    原博文 2016-06-28 23:26 − 1.if语句: 特别说明:条件后面的冒号不能少,同样必须是英文字符. 特别特别说明:if内部的语句需要有一个统一的缩进,一般用4个空格.python用这种 ...

  9. python列表前加星号是什么_Python中的星号:用途及使用方法(1)

    Python部落(python.freelycode.com)组织翻译,禁止转载,欢迎转发. 原作者:Trey Hunner Python中 *和**很常见.无论是对于编程萌新还是许多从其他编程语言( ...

最新文章

  1. vistualSVN server:Windows下SVN服务器利器
  2. php是音频吗,只要是用PHP和JS发布的HTML5是否可以播放音频?
  3. 企业网络安全之安全维度
  4. 微信小程序图表插件 echarts-for-weixin
  5. 硬盘物理序列号修改工具_精品软件:MHDD磁盘坏道扫描工具使用方法图解教程...
  6. java中static代码块与非静态代码块
  7. 信息学奥赛一本通(C++)在线评测系统——基础(一)C++语言—— 1050:骑车与走路
  8. 斗罗大陆真3D手游实力上线,带你感受魂兽猎杀的超燃时刻
  9. Theano 中文文档 0.9 - 7.2.6 Theano如何处理形状信息
  10. Makingware调用静态块,实现自定义html内容的常用方法(不需要修改模版部分)...
  11. Android:读取assets目录下文件(二)
  12. openCV播放视频的程序
  13. android sdk下载慢的解决方法
  14. Java使用lowagie根据模版动态生成PDF(无需额外设置系统字体)
  15. FOC之PI控制的理解
  16. 引用nbsp;TDA2030功放电路图
  17. uni-app的video禁止快进及seek()上的小坑
  18. 客户端服务器通信demo(续) -- 使用二进制协议 (附源码)
  19. 进程间同步---system v ipc 对象信号灯集
  20. 嵌入式睡眠监控报警仪的研究及设计

热门文章

  1. python 逗号作用 语句间_Python中逗号的三种作用
  2. springboot数据访问基本操作步骤
  3. but was actually of type 'com.sun.proxy.$Proxy**'的两种解决方法
  4. 整理Java相关的工具类Utils,持续更新中,建议收藏【目前更新至24】
  5. springboot+springsecurity+mybatis plus之用户授权
  6. java poi excel无法添加水印替代方法
  7. spring框架搭建第一天
  8. 操作系统 第五章【虚拟存储器】【MOOC答案】
  9. JSP、EL和JSTL-学习笔记02【MVC】
  10. 【Window / 浏览器】 常用 快捷键 整理