我从zipfile中删除文件的唯一方法是创建一个临时zipfile而不删除该文件,然后将其重命名为原始文件名.
在python 2.4中,ZipInfo类有一个属性file_offset,因此可以创建第二个zip文件并将数据复制到其他文件而不进行解压缩/重新压缩.
这file_offset在python 2.6中是缺失的,所以除了通过解压缩每个文件然后再次重新压缩它来创建另一个zipfile之外还有另一种选择吗?
是否有可能直接删除zipfile中的文件,我搜索并没有找到任何东西.
我有这个zip文件结构.
zipfile name = filename.zip
filename> images>
style.css
default.js
index.html
Run Code Online (Sandbox Code Playgroud)
我想只更新index.html.我试图更新index.html,但它只包含1.zip文件中的index.html文件,其他文件被重新驱动.
这是我试过的代码:
import zipfile
msg = 'This data did not exist in a file before being added to the ZIP file'
zf = zipfile.ZipFile('1.zip',
mode='w',
)
try:
zf.writestr('index.html', msg)
finally:
zf.close()
print zf.read('index.html')
Run Code Online (Sandbox Code Playgroud)
那么如何才能使用Python更新index.html文件呢?