首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在python中使用多线程同时下载多个文件

如何在python中使用多线程同时下载多个文件
EN

Stack Overflow用户
提问于 2017-07-12 07:01:28
回答 1查看 4.1K关注 0票数 4

我有一个文件夹的链接,里面有大量我想要下载的文件。我开始一次下载一个文件,但是花了很长时间。有没有办法产生一些多线程进程来同时下载一批文件。可能就像process1下载文件夹中的前20个文件一样,process2同时下载下20个文件,以此类推。

现在,我正在做如下工作:

代码语言:javascript
运行
复制
import urllib, os
os.chdir('/directory/to/save/the/file/to')
url = 'http://urltosite/folderthathasfiles
urllib.urlretrieve(url)
EN

回答 1

Stack Overflow用户

发布于 2017-07-12 07:07:46

您可以定义一个以linkfilenameslist为参数的function,然后它将遍历list并下载files,然后为每个list创建一个list并使其指向function。例如:

代码语言:javascript
运行
复制
def download_files(url, filenames):
    for filename in filenames:
        urllib.urlretrieve(os.path.join(url,filename))

# then create the lists and threads
url = 'test.url'
files = [[file1, file2, file3....], [file21, file22, file23...]...]
for lst in files:
    threading.Thread(target=download_files, args=(url, lst)).start()
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45045787

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档