我有一个包含以下结构的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?答案 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())