如何使用python多線程下載多個(gè)文件

小億
187
2024-03-25 09:44:55

使用Python的多線程功能可以實(shí)現(xiàn)同時(shí)下載多個(gè)文件的功能。以下是一個(gè)示例代碼,可以參考使用:

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')

這段代碼會(huì)同時(shí)下載file1.txt、file2.txtfile3.txt這三個(gè)文件,每個(gè)文件的下載會(huì)在一個(gè)獨(dú)立的線程中進(jìn)行。在這個(gè)例子中,我們使用requests庫(kù)來(lái)發(fā)送HTTP請(qǐng)求下載文件。下載文件的函數(shù)download_file會(huì)接受文件的URL和文件名作為參數(shù),然后將文件內(nèi)容保存到本地文件中。

最后,在主線程中等待所有下載線程執(zhí)行完成,并打印提示信息。這樣就實(shí)現(xiàn)了使用多線程同時(shí)下載多個(gè)文件的功能。

0