如何处理压缩文件与Python

问题描述:

a.zip--- 
     -- b.txt 
     -- c.txt 
     -- d.txt 

的方法来处理与Python的zip文件,如何处理压缩文件与Python

我可以在压缩文件展开到一个临时目录,然后处理每个txt文件一个轮空一个

这里,我更感兴趣的是知道python是否提供这样一种方式,以便我不必手动扩展zip文件,只需简单地将zip文件视为专用文件夹并相应地处理每个txt。

+0

所有这些都是重复:http://*.com/search?q=python+zipfile –

+0

可能的重复[如何从远程Zip存档通过HTTP使用Python读取选定的文件?](http:///*.com/questions/94490/how-do-i-read-selected-files-from-a-remote-zip-archive-over-http-using-python) –

+1

或者可能是这样的副本:http:/ /*.com/questions/4890860/make-in-memory-copy-of-a-zip-by-iterrating-over-each-file-of-the-input –

Python standard library可以帮到你。

道格·海尔曼博客有关选择的模块非常丰富:http://www.doughellmann.com/PyMOTW/zipfile/

要在戴维斯的评论:从Python 2.7版的zip文件的对象上提供了一个上下文管理器,所以推荐的方法是:

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方法。如果您写入文件,这一点尤其重要。

是的,你可以自己处理每个文件。看看教程here。对于你的需求,你可以做这样的事情从教程这个例子:

import zipfile 
file = zipfile.ZipFile("zipfile.zip", "r") 
for name in file.namelist(): 
    data = file.read(name) 
    print name, len(data), repr(data[:10]) 

这将遍历在档案中的每个文件,并打印出它的名称,长度和前10个字节。

综合参考文档是here

+1

使用文件作为变量名称与内置文件冲突类型。 – rocksportrocker