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'
# 當(dāng)把get函數(shù)的stream參數(shù)設(shè)置成False時(shí),
# 它會(huì)立即開始下載文件并放到內(nèi)存中,如果文件過大,有可能導(dǎo)致內(nèi)存不足。
# 當(dāng)把get函數(shù)的stream參數(shù)設(shè)置成True時(shí),它不會(huì)立即開始下載,
# 使用iter_content或iter_lines遍歷內(nèi)容或訪問內(nèi)容屬性時(shí)才開始下載
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:一塊一塊的遍歷要下載的內(nèi)容
# iter_lines:一行一行的遍歷要下載的內(nèi)容
# 這兩個(gè)函數(shù)下載大文件可以防止占用過多的內(nèi)存,因?yàn)槊看沃幌螺d小部分?jǐn)?shù)據(jù)
end = time.time()
print 'Finish in :', end - start
總結(jié)
以上是生活随笔為你收集整理的python下载文件的11种方式_Python 中常见的几种下载文件方法的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python单元测试工具_Python的
- 下一篇: android动画帧率_Android动