Python将图像从URL保存到ZipFile

2024-06-14 18:38:04 发布

您现在位置:Python中文网/ 问答频道 /正文

如何将图像从URL保存到zipfile?例如,我试图将this image保存到zipfile,但它不断抛出错误“找不到文件”

我做错了什么

from zipfile import ZipFile
from tempfile import TempFile
import urllib.request

with TemporaryFile() as tf:
    with ZipFile(tf, mode='w') as zf:
        image_url = 'https://upload.wikimedia.org/wikipedia/commons/a/ab/Wurmseegurke.jpg'
        url = urllib.request.open(image_url)
        filename = image_url.split('/')[-1]
        zf.write(filename, url.read())

下面是完整的错误:FileNotFoundError:[Errno 2]没有这样的文件或目录:“Wurmseegurke.jpg”


Tags: 文件fromimageimporturlrequesttfas
1条回答
网友
1楼 · 发布于 2024-06-14 18:38:04

TemporaryFile在关闭后会被删除,因此您的图像在写入后将不可用。 您需要使用writest()在zip中创建“文件对象”:

from zipfile import ZipFile
import urllib.request
import os


image_url = 'https://upload.wikimedia.org/wikipedia/commons/a/ab/Wurmseegurke.jpg'
url = urllib.request.urlopen(image_url)
filename = image_url.split('/')[-1]

zipPath = '/tmp/%s.zip' % filename
with ZipFile(zipPath, mode='w') as zf:
    zf.writestr(filename, url.read())
print(os.path.exists(zipPath))  # probing a zip file was written!

输出:

True

相关问题 更多 >