使用Python解压zip、rar文件
生活随笔
收集整理的這篇文章主要介紹了
使用Python解压zip、rar文件
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
解壓 zip 文件
基本解壓操作
import zipfile''' 基本格式:zipfile.ZipFile(filename[,mode[,compression[,allowZip64]]]) mode:可選 r,w,a 代表不同的打開文件的方式;r 只讀;w 重寫;a 添加 compression:指出這個 zipfile 用什么壓縮方法,默認(rèn)是 ZIP_STORED,另一種選擇是 ZIP_DEFLATED; allowZip64:bool型變量,當(dāng)設(shè)置為True時可以創(chuàng)建大于 2G 的 zip 文件,默認(rèn)值 True;''' zip_file = zipfile.ZipFile(path) zip_list = zip_file.namelist() # 得到壓縮包里所有文件for f in zip_list:zip_file.extract(f, folder_abs) # 循環(huán)解壓文件到指定目錄zip_file.close() # 關(guān)閉文件,必須有,釋放內(nèi)存其他方法
''' 遇到問題沒人解答?小編創(chuàng)建了一個Python學(xué)習(xí)交流QQ群:778463939 尋找有志同道合的小伙伴,互幫互助,群里還有不錯的視頻學(xué)習(xí)教程和PDF電子書! ''' zipfile.is_zipfile('xxx.zip') # 判斷文件是否是個有效的zipfile zipfile.namelist('xxx.zip') # 列表,存儲zip文件中所有子文件的path(相對于zip文件包而言的) zipfile.infolist('xxx.zip') # 列表,存儲每個zip文件中子文件的ZipInfo對象 zipfile.printdir() # 打印輸出zip文件的目錄結(jié)構(gòu),包括每個文件的path,修改時間和大小 zipfile.open(name[,mode[,pwd]]) # 獲取一個子文件的文件對象,可以對其進(jìn)行read,readline,write等操作 zipfile.setpassword(psw),為zip文件設(shè)置默認(rèn)密碼 zipfile.testzip() # 讀取zip中的所有文件,驗(yàn)證他們的CRC校驗(yàn)和。返回第一個損壞文件的名稱,如果所有文件都是完整的就返回None zipfile.write(filename[,arcname[,compression_type]]) # 將zip外的文件filename寫入到名為arcname的子文件中(當(dāng)然arcname也是帶有相對zip包的路徑的),打開方式為w或a zipfile.extract(member, path=None, pwd=None) # 解壓一個zip中的文件,path為解壓存儲路徑,pwd為密碼 zipfile.extractall(path[,pwd]) # 解壓zip中的所有文件,path為解壓存儲路徑,pwd為密碼解壓 rar 文件
Python 本身不支持 rar 文件的解壓,需要先安裝相關(guān)依賴才可使用
- 安裝 unrar 模塊:pip install unrar
- 下載安裝 unrar library,網(wǎng)址:http://www.rarlab.com/rar/UnRARDLL.exe 按照默認(rèn)安裝路徑安裝
- 將安裝后文件夾中的 X64 文件夾加入環(huán)境變量(默認(rèn)路徑為 C:\Program Files (x86)\UnrarDLL\x64)
- 系統(tǒng)變量中新建變量,變量名輸入 UNRAR_LIB_PATH,變量值為 C:\Program Files (x86)\UnrarDLL\x64\UnRAR64.dll(32位系統(tǒng)下的變量值為C:\Program Files (x86)\UnrarDLL\UnRAR.dll)
- 將 winrar 的目錄下的 unrar.exe 復(fù)制到 Python 路徑的 Scripts 文件夾下
- 重啟PyCharm
基本操作
rf = rarfile.RarFile(_rarfile, mode='r') # mode的值只能為'r' rf_list = rf.namelist() # 得到壓縮包里所有的文件 print('rar文件內(nèi)容', rf_list)for f in rf_list:rf.extract(f, folder_abs) # 循環(huán)解壓,將文件解壓到指定路徑# 一次性解壓所有文件到指定目錄 # rf.extractall(path) # 不傳path,默認(rèn)為當(dāng)前目錄總結(jié)
以上是生活随笔為你收集整理的使用Python解压zip、rar文件的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Python基础教程:hasattr()
- 下一篇: Python中递归的最大次数