2013-07-12 147 views
2

如果文件是.zip,我可以解壓文件,如果我的文件類型是.rar,則unrar文件。 我如何使用python 2.7來完成這項工作?如何使用python unrar文件

回答

2

嘗試pyunpack包:

from pyunpack import Archive 
Archive('a.zip').extractall('/path/to') 
+0

它需要'patool'還是其他? – Basj

+0

是的沒有它只能提取zip文件。請在pyunpack文檔中查看我提供的鏈接,其中包含所有內容 –

3

一個好的包裝,因爲這是rarfile

相關信息和文檔在這裏:

https://pypi.python.org/pypi/rarfile/

https://rarfile.readthedocs.org/en/latest/api.html

+0

如果您決定使用'rarfile',當你嘗試提取一個文件時你可能會遇到問題。 這是因爲提取使用winrar網站的UnRaR.exe工具(http://www.rarlab.com/rar_add.htm)。 windows的直接鏈接:http://www.rarlab.com/rar/unrarw32.exe。 確保有這個文件。 我把它放在'C:\ Python27 \ UnRar.exe'中。 編輯文件:'C:\ Python27 \ Lib \ site-packages \ rarfile.py'就像這樣: 'UNRAR_TOOL = r「c:\ python27 \ unrar.exe」' 它幫了我。 – E235

7

晚了,但我並不滿足於任何答案。

pip install patool 
import patoolib 
patoolib.extract_archive("foo_bar.rar", outdir=".") 

適用於Windows和Linux,無需任何其他庫。

+0

良好的庫,但靈活性很低。例如,它不能覆蓋GZ文件。看到這個問題的更多細節:http://stackoverflow.com/questions/29631793/overwriting-previously-extracted-files-instead-of-creating-new-ones – multigoodverse

+1

我試過上面,得到了'patoolib.util.PatoolError:找不到可執行程序來提取格式rar;候選人是(rar,unrar,7z),「如果我對它有正確的理解,我需要有一個公用事業公司,這會破壞目標。 –