使用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.txt
、file2.txt
和file3.txt
這三個文件,每個文件的下載會在一個獨立的線程中進行。在這個例子中,我們使用requests
庫來發送HTTP請求下載文件。下載文件的函數download_file
會接受文件的URL和文件名作為參數,然后將文件內容保存到本地文件中。
最后,在主線程中等待所有下載線程執行完成,并打印提示信息。這樣就實現了使用多線程同時下載多個文件的功能。