在Python中下载多个图像

时间:2015-02-25 10:43:39

标签: python download

我在python中下载多个图像,问题是只下载循环中的最后一个图像

for imgRec in imgresult:

    temp = os.path.join(cwd,'photo_dump',str(fbid))
    if os.path.exists(temp):
        shutil.rmtree(temp)     

    try:
        os.makedirs(temp)
    except OSError:
        pass

    tmp_filename = imgRec[3].split('/')[-1]



    img_link = imgRec[3]

    if(downimg(temp,img_link,tmp_filename)):
        print 'Done'

和函数代码是

def downimg(temp,img_link,tmp_filename,count):
    tm = None
    im = None
    tm = urllib.urlopen(img_link).read()
    im = Image.open(StringIO.StringIO(tm))          
    im.verify()

    res[count] = urllib.urlretrieve(img_link,os.path.join(temp,tmp_filename))


    return res[count]   

1 个答案:

答案 0 :(得分:0)

在for循环的每次迭代中,似乎删除了下载图片的目录“temp”。 如果您需要将所有图像下载到一个目录中,则创建该文件夹的代码应该在循环之前。

temp = os.path.join(cwd,'photo_dump',str(fbid))
if os.path.exists(temp):
    shutil.rmtree(temp)     

try:
    os.makedirs(temp)
except OSError:
    pass

for imgRec in imgresult:

    tmp_filename = imgRec[3].split('/')[-1]
    img_link = imgRec[3]

    if(downimg(temp,img_link,tmp_filename)):
        print 'Done'

如果您需要每个图像的目录,请在循环内更改“fbid”。