使用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.txt
和file3.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è)文件的功能。