我有一个文件夹的链接,该文件夹包含我要下载的大量文件。我开始一次下载单个文件,但是需要很长时间。有没有办法产生一些多线程进程来同时下载一批文件。可能就像process1下载文件夹中的前20个文件一样,process2同时下载下20个文件,依此类推。
现在,我做的如下:
import urllib, os
os.chdir('/directory/to/save/the/file/to')
url = 'http://urltosite/folderthathasfiles
urllib.urlretrieve(url)
答案 0 :(得分:1)
您可以定义function
link
和list
filenames
然后它会遍历list
并下载files
然后为每个thread
创建一个list
,并将其定位到function
。例如:
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()