如何处理压缩文件与Python
问题描述:
a.zip---
-- b.txt
-- c.txt
-- d.txt
的方法来处理与Python的zip文件,如何处理压缩文件与Python
我可以在压缩文件展开到一个临时目录,然后处理每个txt文件一个轮空一个
这里,我更感兴趣的是知道python是否提供这样一种方式,以便我不必手动扩展zip文件,只需简单地将zip文件视为专用文件夹并相应地处理每个txt。
答
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
所有这些都是重复:http://*.com/search?q=python+zipfile –
可能的重复[如何从远程Zip存档通过HTTP使用Python读取选定的文件?](http:///*.com/questions/94490/how-do-i-read-selected-files-from-a-remote-zip-archive-over-http-using-python) –
或者可能是这样的副本:http:/ /*.com/questions/4890860/make-in-memory-copy-of-a-zip-by-iterrating-over-each-file-of-the-input –