zipfile包是python中用來處理zip文件壓縮和解壓縮的
一、導包
import zipfile
二、zipfile.ZipFile類
-
z = ZipFile(file, mode="r", compression=ZIP_STORED, allowZip64=True,compresslevel=None)
- file:文件名
- mode:模式可以是'r', 'w', 'x' 或者'a'
- compression:壓縮,默認ZIP_STORED(無壓縮),其他可以為ZIP_DEFLATED (zlib)、ZIP_BZIP2 (bz2) or ZIP_LZMA (lzma)
- allowZip64:是個bool型變量,當設置為True的時候就是說可以用來創建大小大於2G的zip文件,默認值是True
- compresslevel:壓縮級別
-
解壓縮(mode為'r')
- z = ZipFile('iig.zip')
- z.namelist()
- 以列表的形式顯示壓縮文件iig.zip中的所有文件名
z.namelist() Out: ['Change_log_data.csv', 'Change_Log_Data.xls', 'IIR_OCOMM.csv', 'IIR_OCOMM.xls']
- 以列表的形式顯示壓縮文件iig.zip中的所有文件名
- z.extract(member, path=None, pwd=None)
- 解壓某個文件到指定path下,如果該path目錄不存在,則自動創建,pwd為解壓密碼
z.extract('IIR_OCOMM.csv','./test') Out: 'test\\IIR_OCOMM.csv'
將IIR_OCOMM.csv文件解壓縮到當前目錄test文件夾下,不存在,自動創建test文件夾
- 解壓某個文件到指定path下,如果該path目錄不存在,則自動創建,pwd為解壓密碼
- z.extractall(path=None, members=None, pwd=None)
- 默認解壓z.namelist()中的所有文件到指定目錄下,目錄不存在則自動創建,pwd為解壓密碼,members參數也可以指定,但必須是z.namelist()的子集
- z.close() #和文件操作一樣,最后必須調用close()方法
-
壓縮(模式'w')
- z = zipfile.ZipFile('test.zip','w') #壓縮后的文件名為test.zip
- z.write(filename, arcname=None, compress_type=None, compresslevel=None)
- filename指的是需要壓縮的文件名
- 將當前目錄下iig文件夾下的所有文件壓縮到test.zip文件中(實際就是壓縮文件夾)
for filename in os.listdir('./iig'): z.write('./iig/'+filename)
-
如果是壓縮某個文件,比如z.write('./IIR_OCOMM.csv')
- z.close() 最后必須調用close()方法