Уведомления

Группа в Telegram: @pythonsu

#1 Сен. 29, 2018 12:50:49

JakeBV
Зарегистрирован: 2018-09-29
Сообщения: 1
Репутация: +  0  -
Профиль   Отправить e-mail  

Добавить файлы в архив не сохраняя их на диск

Здравствуйте. Помогите решить задачу. Есть сайт с файлами, эти файлы надо добавить в архив, но при этом избежать их сохранения на диск. Архив тоже не нужно сохранять на диск, нужно, чтобы он висел в памяти и в последующем его можно было использовать, например отправить на почту. Пробовал так, но ничего не выходит.

     for x in llinkslist:
        link = 'www.example/' + x +'.png'
        image = requests.get(link).content
        img = BytesIO(image)
        img.name = x + '.png'
        zipf = BytesIO()
        with zipfile.ZipFile(zipf, mode='w') as z:
            z.write(img.name)

Офлайн

#2 Сен. 30, 2018 06:17:58

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 9958
Репутация: +  856  -
Профиль   Отправить e-mail  

Добавить файлы в архив не сохраняя их на диск

  
>>> import zipfile
>>> import io
>>> 
>>> data = io.BytesIO()
>>> with zipfile.ZipFile(data, 'w') as zout:
...   zout.writestr('file.txt', 'test')
... 
>>> data.seek(0)
0
>>> data.read()
b'PK\x03\x04\x14\x00\x00\x00\x00\x00\nr>M\x0c~\x7f\xd8\x04\x00\x00\x00\x04\x00\x00\x00\x08\x00\x00\x00file.txttestPK\x01\x02\x14\x03\x14\x00\x00\x00\x00\x00\nr>M\x0c~\x7f\xd8\x04\x00\x00\x00\x04\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x01\x00\x00\x00\x00file.txtPK\x05\x06\x00\x00\x00\x00\x01\x00\x01\x006\x00\x00\x00*\x00\x00\x00\x00\x00'
>>> data.seek(0)
0
>>> with open('file.zip', 'wb') as fout:
...   fout.write(data.read())
... 
118
>>>



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version