安裝 zipfile
pip3 install zipfile38
pip3 install zipfile37
f=zipfile.ZipFile("test.zip",mode="") //mode 解壓是 r , 壓縮是 w, 追加壓縮是 a
壓縮文件
import zipfile def zip_files( files, zip_name ): zip = zipfile.ZipFile( zip_name, 'w', zipfile.ZIP_DEFLATED ) for file in files: print ('compressing', file) zip.write( file ) zip.close() print ('compressing finished') files = ['D:\\temp-test\\abc.txt', 'D:\\temp-test\\bbb.txt'] #多個文件的路徑和名稱,多個文件用“,”隔開 zip_file = 'D:\\temp-test\\ccc.txt.zip' #壓縮之后的包名字 zip_files(files, zip_file)
壓縮一個文件
import zipfile try: with zipfile.ZipFile("c://users//17250//desktop//test.zip",mode="w") as f: f.write("c://users//17250//desktop//test.txt") #寫入壓縮文件,會把壓縮文件中的原有覆蓋 except Exception as e: print("異常對象的類型是:%s"%type(e)) print("異常對象的內容是:%s"%e) finally: f.close()
追加一個文件
import zipfile #向已存在的壓縮文件中追加內容 try: with zipfile.ZipFile("c://users//17250//desktop//test.zip",mode="a") as f: f.write("e://test.txt") #追加寫入壓縮文件 except Exception as e: print("異常對象的類型是:%s"%type(e)) print("異常對象的內容是:%s"%e) finally: f.close()
import zipfile, os def zip_files(files, zip_name): zip = zipfile.ZipFile( zip_name, 'w', zipfile.ZIP_DEFLATED ) for file in files: print ('compressing', file) zip.write( file ) res = zip.testzip() if res: print(res) #raise Exception('Zip file from \'{0!s}\' was corrupt.'.format(file)) zip.close() print ('compressing finished') files = ['D:\\temp-test\\abc.txt', 'D:\\temp-test\\bbb.txt'] #文件的位置,多個文件用“,”隔開 zip_file = 'D:\\temp-test\\ccc.txt.zip' #壓縮包名字 #os.remove(zip_file) zip_files(files, zip_file)
檢查壓縮文件
解壓文件
import zipfile zip_file = zipfile.ZipFile('D:\\temp-test\\ccc.txt.zip') # 解壓 zip_extract = zip_file.extractall() ## 解壓到當前目錄(運行python程序的目錄) zip_file.close()
import zipfile zip_file = zipfile.ZipFile('D:\\temp-test\\ccc.txt.zip') # 解壓 for names in zip_file.namelist(): zip_file.extract(names, 'D:\\temp-test\\' ) zip_file.close()
import zipfile try: with zipfile.ZipFile("c://users//17250//desktop//test.zip",mode="a") as f: f.extractall("c://users//17250//desktop//",pwd=b"root") ##將文件解壓到指定目錄,解壓密碼為root except Exception as e: print("異常對象的類型是:%s"%type(e)) print("異常對象的內容是:%s"%e) finally: f.close()
REF
https://www.cnblogs.com/chenlove/p/9526707.html
https://www.jb51.net/article/188637.htm
https://vimsky.com/examples/detail/python-ex-zipfile-ZipFile-testzip-method.html