博主以前在網上找了不少資料,發現rarfile庫不能直接調用,須要安裝unrar模塊,下面將詳細介紹整個實現流程。 測試
第一步:安裝unrar模塊,直接pip install unrar可能會找不到庫,須要下載unrar library,也就是UnRAR.dll,下載地址爲:http://www.rarlab.com/rar/UnRARDLL.exe ;加密
第二步:將unrar安裝路徑添加到系統環境變量,64位操做系統的路徑爲C:\Program Files (x86)\UnrarDLL\x64,而後還須要將x64文件下的UnRAR64.lib和UnRAR64.dall重命名爲unrar.lib和unrar.dall,由於unrar模塊識別的文件是unrar.dll和unrar.lib;spa
第三步:打開Pycharm,就能夠用下面代碼實現:操作系統
from unrar import rarfile#導入rarfile庫
path1 = "C:\\test.rar"#須要解壓的文件路徑及地址
path2 = "C:\\TEST"#須要解壓到的文件夾地址
rf = rarfile.RarFile(path1) # pwd爲解壓密碼
rf.extractall(path = path2, pwd = "123")
後來博主測試的時候發現,通常壓縮成RAR文件的時候,會出現一個選項「加密文件名」,以下圖所示,而當加密文件名後,上述代碼是沒法完成解壓的,判斷一個文件是否加密了文件名,其實很簡單,只需雙擊壓縮包,若是能直接看到包裏面的內容,此時是沒有加密文件名的,若是雙擊直接要求輸入密碼,這時是加密文件名的。 code
若是加密了文件名,能夠經過下述代碼完成解壓:blog
from unrar import rarfile#導入rarfile庫
path1 = "C:\\test.rar"#須要解壓的文件路徑及地址
path2 = "C:\\TEST"#須要解壓到的文件夾地址
rf = rarfile.RarFile(path1 , pwd = "123") # pwd爲解壓密碼
rf.extractall(path = path2, pwd = "123")
固然,若是你的壓縮包沒有密碼,能夠使用如下代碼實現:ip
from unrar import rarfile#導入rarfile庫
file = rarfile.RarFile('C:\\test.rar') #須要解壓的文件路徑及文件
file.extractall('C:\\TEST') #須要解壓到的文件夾地址