python

如何使用python多线程下载多个文件

小亿
190
2024-03-25 09:44:55
栏目: 编程语言

使用Python的多线程功能可以实现同时下载多个文件的功能。以下是一个示例代码,可以参考使用:

import threading
import requests

def download_file(url, filename):
    r = requests.get(url)
    with open(filename, 'wb') as f:
        f.write(r.content)
    print(f'Downloaded {filename}')

files = [
    {'url': 'http://example.com/file1.txt', 'filename': 'file1.txt'},
    {'url': 'http://example.com/file2.txt', 'filename': 'file2.txt'},
    {'url': 'http://example.com/file3.txt', 'filename': 'file3.txt'}
]

threads = []
for file in files:
    t = threading.Thread(target=download_file, args=(file['url'], file['filename']))
    threads.append(t)
    t.start()

for t in threads:
    t.join()

print('All files downloaded successfully')

这段代码会同时下载file1.txtfile2.txtfile3.txt这三个文件,每个文件的下载会在一个独立的线程中进行。在这个例子中,我们使用requests库来发送HTTP请求下载文件。下载文件的函数download_file会接受文件的URL和文件名作为参数,然后将文件内容保存到本地文件中。

最后,在主线程中等待所有下载线程执行完成,并打印提示信息。这样就实现了使用多线程同时下载多个文件的功能。

0
看了该问题的人还看了