Python 如何将一组图像添加到zipfile

Python 如何将一组图像添加到zipfile,python,urllib,zipfile,Python,Urllib,Zipfile,我有一个图像文件名列表,大约有150个条目。每个图像都通过urllib下载并存储在系统中。结果是一个zipfile,其中包含多个断开的图像。某些图像的最后一部分丢失/损坏 图像下载效果很好。列表中的每个图像都已完全下载,并且都是有效的图像。看起来我必须等到zf.write()完全完成,直到添加下一个映像。有没有办法确保这一点 images = ['image-01.jpg', 'image-02.jpg', 'image-03.jpg'] zf = zipfile.ZipFile('file.

我有一个图像文件名列表,大约有150个条目。每个图像都通过urllib下载并存储在系统中。结果是一个zipfile,其中包含多个断开的图像。某些图像的最后一部分丢失/损坏

图像下载效果很好。列表中的每个图像都已完全下载,并且都是有效的图像。看起来我必须等到zf.write()完全完成,直到添加下一个映像。有没有办法确保这一点

images = ['image-01.jpg', 'image-02.jpg', 'image-03.jpg']

zf = zipfile.ZipFile('file.zip', mode='w')

for image in images:

    download_url = 'http://foo/bar/' + image

    image_file = open(image, 'wb')
    image_file.write(urllib.urlopen(download_url).read())
    image_file.close

    zf.write(image)

zf.close()

多亏了alecxe。解决方法是正确地关闭文件

image_file.close()

您没有关闭
image\u文件
,请将
image\u文件替换为
image\u文件。关闭()
。这就是解决方案。奇怪的是,在后台运行python时没有错误。