我正在尝试从两个网站下载多个图像文件,并且正在使用多处理模块进行,希望缩短所需时间(同步大约需要五分钟)。这是在单独进程中执行的代码:
def _get_image(self):
if not os.path.isdir(self.file_path + self.folder):
os.makedirs(self.file_path + self.folder)
rand = Random()
rand_num = rand.randint(0, sys.maxint)
self.url += str(rand_num)
opener = urllib.FancyURLopener()
opener.retrieve(self.url, self.file_path + self.folder + '/' + str(rand_num) + '.jpg')
上面的代码在单独的进程中执行并且工作正常,但我希望它不要在下载每个文件后立即保存,而是在进程执行结束时保存。下载后,我希望将它们存储在某个内部列表或字典中……遗憾的是,FancyURLopener 不允许将文件存储在内存中,并坚持在下载后立即将它们写入磁盘。有没有像 FancyURLopener 这样的工具,但没有磁盘写入功能?