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