/ / Jak dodać plik URL do zip - python, python-3.x, url, zip

Jak dodać plik URL do zip - python, python-3.x, url, zip

Mam plik zip o następującej strukturze:

my_zip.zip
|-file1.txt
|-folder1/
|-file2.txt

Chcę dodać some_file z adresu URL do folder1. Wiem, że mogę zrobić coś takiego:

>>> import zipfile
>>> z = zipfile.ZipFile("my_zip.zip", "w")
>>> z.write("some_file")

Ale są dwie kwestie:

  • Jak dodać some_file do tego konkretnego folder1?
  • Czy mogę pobrać some_file na moim komputerze i następnym użyciu z.write("path/to_my/local/some_file")? Nie ma sposobu, aby zrobić to bezpośrednio z adresu URL na suwak?

Odpowiedzi:

1 dla odpowiedzi № 1

Posługiwać się ZipFile.writestr(arcname, data).

Aby napisać do folderu w pliku zip, wystarczy wpisać nazwę foldername tak, jakbyś zapisywał się do folderu w folderze (So folder1/some_file).

import urllib.request
import zipfile

z = zipfile.ZipFile("my_zip.zip", "w")
page = urllib.request.urlopen("http://example.com/")  # Change to website
z.writestr("folder1/some_file", page.read())