我有一个child.zip
在另一个zip master.zip
我想将文件str.txt
添加到儿童.zip你知道吗
结构如下:
- master.zip
- child.zip
- str.txt
以下是我的尝试:
def writeadapt():
with zipfile.ZipFile('master.zip','a', zipfile.ZIP_DEFLATED) as zfile:
for name in zfile.namelist():
if re.search(r'\.zip$', name ) != None:
zfiledata = io.BytesIO(zfile.read(name))
with zipfile.ZipFile(zfiledata , 'a', zipfile.ZIP_DEFLATED) as zfile2:
zfile2.writestr('str.txt',"hello")
zfile2.close()
代码不添加文件字符串.txt至儿童.zip. 你知道吗
向嵌套zip添加文件的最佳方法是什么?你知道吗
如果可能的话,你需要重新考虑一下这个设计。你知道吗
将文件添加到ZIP存档需要写入存档。但是,存储在ZIP存档中的文件是不可写的,它们可以用新文件替换,但不能就地更新,因此无法直接将文件写入嵌套的ZIP存档。你知道吗
您的代码没有按预期工作,因为更新
zfiledata
中的ZIP存档不会更新父存档中的相应数据。(毕竟,它只是一个BytesIO
对象)您需要将该数据写回父存档以持久化更改。但是,正如我前面提到的,这将是一个缓慢而昂贵的操作,特别是如果归档文件很大,应该避免这样做。你知道吗相关问题 更多 >
编程相关推荐