a.zip---
-- b.txt
-- c.txt
-- d.txt
的方法來處理與Python的zip文件,如何處理壓縮文件與Python
我可以在壓縮文件展開到一個臨時目錄,然後處理每個txt文件一個輪空一個
這裏,我更感興趣的是知道python是否提供這樣一種方式,以便我不必手動擴展zip文件,只需簡單地將zip文件視爲專用文件夾並相應地處理每個txt。
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。
使用文件作爲變量名稱與內置文件衝突類型。 – rocksportrocker
所有這些都是重複:http://stackoverflow.com/search?q=python+zipfile –
可能的重複[如何從遠程Zip存檔通過HTTP使用Python讀取選定的文件?](http:///stackoverflow.com/questions/94490/how-do-i-read-selected-files-from-a-remote-zip-archive-over-http-using-python) –
或者可能是這樣的副本:http:/ /stackoverflow.com/questions/4890860/make-in-memory-copy-of-a-zip-by-iterrating-over-each-file-of-the-input –