gpt4 book ai didi

python - 如何使用 Python 2.7 通过多线程(异步下载)通过 HTTP 下载文件

转载 作者:可可西里 更新时间:2023-11-01 16:11:06 25 4
gpt4 key购买 nike

我有一个文件要下载(从json中提取的下载路径。eg:http://testsite/abc.zip)。

我需要帮助才能执行,所有 5 个线程都应将 abc.zip 文件下载到输出目录并且下载必须是异步并发

目前使用下面的代码,它确实下载了文件 5 次,但它是一个一个地下载(同步)。

我想要的是同步下载。

def dldr(file=file_url, outputdir=out1):
local_fn = str(uuid.uuid4())
if not os.path.exists(outputdir):
os.makedirs(outputdir)
s = datetime.now()
urllib.urlretrieve(file, outputdir + os.sep + local_fn)
e = datetime.now()
time_diff = e - s
logger(out1, local_fn, time_diff)

for i in range(1, 6):
t = threading.Thread(target=dldr())
t.start()

我已阅读 Requests with multiple connections发布并且它很有帮助,但没有解决所问问题的要求。

最佳答案

我使用线程模块来下载线程:
同样是requests,不过可以自己改成urllib。

import threading
import requests

def download(link, filelocation):
r = requests.get(link, stream=True)
with open(filelocation, 'wb') as f:
for chunk in r.iter_content(1024):
if chunk:
f.write(chunk)

def createNewDownloadThread(link, filelocation):
download_thread = threading.Thread(target=download, args=(link,filelocation))
download_thread.start()

for i in range(0,5):
file = "C:\\test" + str(i) + ".png"
print file
createNewDownloadThread("http://stackoverflow.com/users/flair/2374517.png", file)

关于python - 如何使用 Python 2.7 通过多线程(异步下载)通过 HTTP 下载文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33541956/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com