1.壓縮文件
path = 'C:\\Users\Administrator\Desktop\\apache-tomcat-8.5.31\logs\catalina.2018-08-27.log' #要壓縮的文件路徑 zipf = zipfile.ZipFile(path[:-4]+'.zip', 'w') #第一個參數:壓縮后文件的路徑名稱 zipf.write(path, 'test\\1.log') #第二個參數,壓縮后的文件路徑名稱(如果不寫,則默認為path路徑+path路徑。 強烈建議寫上!本人就是因為這個原因才寫本次博) zipf.close() #關閉流
2.壓縮文件夾
zipPath = 'd:\\1' zipf = zipfile.ZipFile(zipPath+'.zip', 'w') for file in os.listdir(zipPath): print(zipPath+os.sep+file) zipf.write(os.path.join(zipPath, file), file) zipf.close() #放外層,不然會關閉流 shutil.move(zipPath+'.zip', 'd:\\1\\log.zip') #移動文件到指定目錄下
具體函數介紹
ZipFile(filename[,mode[,compression[,allowZip64]]])
- filename:文件對象;例如:’xxx.zip’
- mode:可選r,w,a代表不同的打開文件的方式;r只讀;w重寫;a添加;
- compression:指出這個zipfile用什么壓縮方法,默認是ZIP_STORED,另一種選擇是ZIP_DEFLATED;
- allowZip64:是個bool型變量,當設置為True的時候就是說可以用來創建大小大於2G的zip文件,默認值是True;
ZipFile.write(filename[, arcname[, compress_type]])
將指定文件添加到zip文檔中。
filename為文件路徑,arcname為添加到zip文檔之后保存的名稱,參數compress_type表示壓縮方法,它的值可以是zipfile.ZIP_STORED或zipfile.ZIP_DEFLATED
另記錄 os.sep 方法: 文件分隔符,適配windows和linux系統
2.解壓文件
z = zipfile.ZipFile('C:\\Users\Administrator\Desktop\\apache-tomcat-8.5.31\logs\localhost.2018-06-08.zip', 'r') print(z.read(z.namelist()[0]))