单线程和多线程下载文件
Posted laosun0204
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了单线程和多线程下载文件相关的知识,希望对你有一定的参考价值。
单线程下载文件:
import requests
import time
from hashlib import md5
def down_load_pic(url):
req = requests.get(url)
m = md5(url.encode())
with open(m.hexdigest() + ‘.png‘, ‘wb‘) as fw: # md5后的名称作为图片的前缀
fw.write(req.content)
url_list = [
‘http://www.nnzhp.cn/wp-content/uploads/2019/10/f410afea8b23fa401505a1449a41a133.png‘,
‘http://www.nnzhp.cn/wp-content/uploads/2019/11/481b5135e75c764b32b224c5650a8df5.png‘,
‘http://www.nnzhp.cn/wp-content/uploads/2019/11/b23755cdea210cfec903333c5cce6895.png‘,
‘http://www.nnzhp.cn/wp-content/uploads/2019/11/542824dde1dbd29ec61ad5ea867ef245.png‘,
]
start_time = time.time()
for url in url_list:
down_load_pic(url)
end_time = time.time()
print(end_time - start_time)
多线程下载文件:
import requests
import time
import threading
from hashlib import md5
def down_load_pic(url):
req = requests.get(url)
m = md5(url.encode())
with open(m.hexdigest() + ‘.png‘, ‘wb‘) as fw:
fw.write(req.content)
url_list = [
‘http://www.nnzhp.cn/wp-content/uploads/2019/10/f410afea8b23fa401505a1449a41a133.png‘,
‘http://www.nnzhp.cn/wp-content/uploads/2019/11/481b5135e75c764b32b224c5650a8df5.png‘,
‘http://www.nnzhp.cn/wp-content/uploads/2019/11/b23755cdea210cfec903333c5cce6895.png‘,
‘http://www.nnzhp.cn/wp-content/uploads/2019/11/542824dde1dbd29ec61ad5ea867ef245.png‘,
]
start_time = time.time()
for url in url_list:
t = threading.Thread(target=down_load_pic, args=(url,))
t.start()
while threading.activeCount() != 1:
pass
end_time = time.time()
print(end_time - start_time)
以上是关于单线程和多线程下载文件的主要内容,如果未能解决你的问题,请参考以下文章