講述Python模塊中的Zipfile
Python 具有腳本語言中最豐富和強大的類庫,足以支持絕大多數日常應用,Python模塊和C可以一起工作,它可以嵌入到C或者C++的應用程序當中,因此可用Python語言為應用程序提供腳本接口。
在這里對zipfile的使用方法做一些記錄。即方便自己也方便別人。zipfile里有兩個非常重要的class, 分別是ZipFile和ZipInfo, 在絕大多數的情況下,我們只需要使用這兩個class就可以了。Python模塊 ZipFile是主要的類,用來創(chuàng)建和讀取zip文件而ZipInfo是存儲的zip文件的每個文件的信息的。
比如要讀取一個zipfile,這里假設filename是一個文件的路徑:
- import zipfile
- z = zipfile.ZipFile(filename, 'r') # 這里的第二個參數用r表示是讀取zip文件,w是創(chuàng)建一個zip文件
- for f in z.namelist():
- print f
- import zipfile
- z = zipfile.ZipFile(filename, 'r')
- for i in z.infolist():
- print i.file_size, i.header_offset
這里使用了Python模塊z.infolist(), 它返回的就是壓縮包內所有文件的信息,就是一個ZipInfo的列表。一個ZopInfo對象中包含了壓縮包內一個文件的信息。其中比較常用的是 filename, file_size, header_offset, 分別為文件名。
文件大小,文件數據在壓縮包中的偏移。其實之前的z.namelist()就是讀取的ZopInfo中的filename,組成一個 list返回的。
從壓縮包里解壓縮出一個文件的方法是使用ZipFile的read方法:
上面的截圖非常的簡單。想想還有一個問題,如果我把一個test/111.txt 添加到壓縮包里之后我希望在包里它放到test22/111.txt怎么辦呢?
【編輯推薦】