一、zipfile模塊的簡述
zipfile是python里用來做zip格式編碼的壓縮和解壓縮的,由于是很常見的zip格式,所以這個模塊使用頻率也是比較高的,
在這里對zipfile的使用方法做一些記錄。即方便自己也方便別人。
zipfile里有兩個非常常用的class, 分別是ZipFile和ZipInfo, 在絕大多數的情況下,我們只需要使用這兩個class就可以了。
ZipFile是主要的類,用來創建和讀取zip文件而ZipInfo是存儲的zip文件的每個文件的信息的。
下面我們就來介紹這兩個類的基本操作:
二、ZipFile和Zipinfo這兩個類的基本操作
1、class zipfile.ZipFile(file[, mode[, compression[, allowZip64]]])
創建一個ZipFile對象,表示一個zip文件。參數file表示文件的路徑或類文件對象(file-like object);參數mode指示打開zip文件的模式,
默認值為'r',表示讀已經存在的zip文件,也可以為'w'或'a','w'表示新建一個zip文檔或覆蓋一個已經存在的zip文檔,
import zipfilef = zipfile.ZipFile(filename, 'r') # 這里的第二個參數用r表示是讀取zip文件,w或a是創建一個zip文件for f_name in f.namelist(): #z.namelist() 會返回壓縮包內所有文件名的列表。 print(f_name)#上面的代碼是讀取一個zip壓縮包里所有文件的名字。
'a'表示將數據附加到一個現存的zip文檔中。參數compression表示在寫zip文檔時使用的壓縮方法,它的值可以是zipfile. ZIP_STORED 或zipfile. ZIP_DEFLATED。如果要操作的zip文件大小超過2G,應該將allowZip64設置為True。
ZipFile還提供了如下常用的方法和屬性:
ZipFile.getinfo(name)
獲取zip文檔內指定文件的信息。返回一個zipfile.ZipInfo對象,它包括文件的詳細信息。
ZipFile.infolist()
獲取zip文檔內所有文件的信息,返回一個zipfile.ZipInfo的列表。
ZipFile.namelist()
獲取zip文檔內所有文件的名稱列表。
ZipFile.extract(member[, path[, pwd]])
將zip文檔內的指定文件解壓到當前目錄。參數member指定要解壓的文件名稱或對應的ZipInfo對象;參數path指定了解析文件保存的文件夾;
參數pwd為解壓密碼。下面一個例子將保存在程序根目錄下的duoduo.zip內的所有文件解壓到D:/Work目錄:
import zipfile, osf = zipfile.ZipFile(os.path.join(os.getcwd(), 'duoduo.zip')) #拼接成一個路徑for file in f.namelist(): f.extract(file, r'd:/Work') #在d:/Work中解壓文件f.close()
上面是os.getcwd的用法?。?/p>
ZipFile.extractall([path[, members[, pwd]]])
解壓zip文檔中的所有文件到當前目錄。參數members的默認值為zip文檔內的所有文件名稱列表,也可以自己設置,選擇要解壓的文件名稱。
新聞熱點
疑難解答