如何将url文件添加到zip

时间:2016-10-01 20:33:42

标签: python python-3.x url zip

我有一个包含以下结构的zip文件:

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

我想将some_file 从网址添加到folder1。我知道我可以做类似的事情:

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

但是,有两个问题:

  • 如何将some_file添加到特定的folder1
  • 我应该将some_file下载到我的电脑,然后再使用z.write('path/to_my/local/some_file')吗?没有办法直接从url到zip?

1 个答案:

答案 0 :(得分:2)

使用ZipFile.writestr(arcname, data)

要写入zipfile中的文件夹,只需编写foldername就像写入文件夹中的文件夹一样(所以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())