如何用Python处理ZIP文件
a.zip---
-- b.txt
-- c.txt
-- d.txt
用Python处理zip文件的方法,
我可以把zip文件解压到一个临时文件夹,然后一个一个地处理每个txt文件。
不过,我更想知道Python有没有办法让我不用手动解压zip文件,而是直接把zip文件当成一个特殊的文件夹来处理里面的每个txt文件。
2 个回答
32
Python的标准库可以帮助你处理很多事情,特别是压缩文件。
Doug Hellman写了很多关于一些特定模块的很有用的文章,你可以在这里找到:https://pymotw.com/3/zipfile/
关于David的帖子补充一下:从Python 2.7开始,Zipfile对象提供了一个上下文管理器,所以推荐的用法是:
import zipfile
with zipfile.ZipFile("zipfile.zip", "r") as f:
for name in f.namelist():
data = f.read(name)
print name, len(data), repr(data[:10])
因为使用了with语句,close
方法会自动被调用。这一点特别重要,尤其是当你要往文件里写东西的时候。