Python解壓zip和rar檔案

2021-06-27 14:11:38 字數 1540 閱讀 6836

更多0

python

rarzip

如上篇所說,我要使用python解壓一些檔案,一來就不懂,google到zipfile了,然後又google到rarfile了。rarfile是模仿zipfile模組寫的,所以介面幾乎一樣,只有rar和zip的字元差別。但是zip功能是python內建模組,rar不是,不是親媽生的有些問題,還存在嚴重的跨平台問題。

(所以此文有點作業系統區別,rarfile需要unrar.exe的支援,我只在win7下測試了)

這是個內建模組,所以google一下就找到了。在python官網有很全的文件,全英文,去年認真學的英文此刻覺得很感動。在寫此文時有個意外收穫,它提供了zipfile.is_zipfile(filename)

介面,不過我上篇的 filetype判斷還是有用的,所以不會回頭去改實現了。

我需要的功能的全部解壓,所以用到了zipfile.extractall([path[, members[, pwd]]])這個函式。其他函式沒時間乙個乙個試過去,知其意和知其有這個介面就好了,下次用到再測試,免得把問題複雜化。

安裝一般都是 (這裡有python第三方安裝方法的大全)

pip install rarfile

或easy_install http

:

python setup

.py install

還不行,你安裝python了麼,或者把python路徑設為環境變數了麼?

用法跟zip一樣,文件 不一一解說了。測試時產生了如下錯誤

rarfile

.rarexecerror

:unrar

notinstalled?(

rarfile

.unrar_tool

='unrar'

)

everything 了一下unrar,在winrar的目錄中找到unrar.exe,把著僥倖的心理把他拷貝到我的python指令碼目錄下,再執行就ok了。看來使用rarfile需要系統安裝unrar並環境變數path中(命令列可以直接訪問到)

python裡的中文一直是我頭大的問題,不過久而久知也大概知道怎麼解決,但今天出現的問題又讓我頭大了。然後,堅持不懈的我還是把他解決了。傳說這個問題也在windows系統中常見,大牛不在windows世界中混,或者大牛不在windows的中文系統中混。苦逼了我們這些被迫用windows的程式設計師(其實我也喜歡在macos和ubuntu下折騰,但是公司的事無解了)。屁話少說,直接上問題和解決方法

unicodeencodeerror

:'ascii'

codec can

't encode characters in position 44-48: ordinal not in range(128)

在程式開頭加上以下**

import

sysreload

(sys

)sys

.setdefaultencoding

('gbk'

)

如果你在windows的中文系統中遇到中文會遇到莫名其妙的問題,就加上這些**。

解壓rar和zip 解決中文亂碼

public void unrar string rarpath,string targetpath throws exception 判斷編碼,解決中文亂碼的問題 string localpath f.isunicode f.getfilenamew f getfilenamestring 得到的...

Linux下如何解壓 zip和 rar檔案

linux下如何解壓.zip和.rar檔案,對於window下的常見壓縮檔案.zip和.rar,linux也有相應的方法來解壓它們 1 對於zip linux下提供了zip和unzip程式,zip是壓縮程式,unzip是解壓程式。它們的引數選項很多,這裡只做簡單介紹,舉例說明一下其用法 zip al...

Linux下如何解壓 zip和 rar檔案

linux下如何解壓.zip和.rar檔案,對於window下的常見壓縮檔案.zip和.rar,linux也有相應的方法來解壓它們 1 對於zip linux下提供了zip和unzip程式,zip是壓縮程式,unzip是解壓程式。它們的引數選項很多,這裡只做簡單介紹,舉例說明一下其用法 這條命令是將...