【发布时间】:2015-11-05 10:18:07
【问题描述】:
我有一个文件要下载(从 json 中提取的下载路径。例如: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 的帖子,它很有帮助,但没有解决所提问题的要求。
【问题讨论】:
-
那么你的问题是什么?
-
上面的代码会将文件下载到一个位置。这里如何实现多线程5个代理同时下载文件?
-
哦,你想要单文件下载多线程:比重复问题:stackoverflow.com/questions/9701682/…
-
它确实解决了我的要求。非常感谢@cvakiitho !!!
标签: python multithreading python-2.7 http