33

如何使用 Python提取.zip或文件?.rar

4

6 回答 6

35

迟到了,但我对任何答案都不满意。

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

无需任何其他库即可在 Windows 和 linux 上工作。

于 2014-10-03T11:45:25.903 回答
20

试试这个pyunpack包:

from pyunpack import Archive
Archive('a.zip').extractall('/path/to')
于 2013-07-12T12:16:13.627 回答
11

一个很好的包是rarfile

信息和文档在这里:

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

https://rarfile.readthedocs.io/api.html

于 2013-07-12T12:10:52.710 回答
6

经过一番深入研究,以下是我的发现:

  • RAR 不是免费的开放格式,归 RARLabs 所有。您必须先安装他们的 DLL 或 exe 才能使用 RAR。像 7zip 这样的一些程序可能已经包含了这个。
  • patool是为其他外部压缩应用程序提供统一命令行作为包装器的应用程序。原生只能处理 TAR、ZIP、BZIP2 和 GZIP,无需外部支持。
  • pyunpack是 Python 库,只能原生处理 zip,但提供patool.

考虑到这一点,以下事情对我有用:

  • 确保已安装 7zip
  • pip install patool pyunpack

然后使用它,

import pyunpack

pyunpack.Archive(archive_file).extractall(extract_dir)
于 2020-06-27T23:42:42.727 回答
4
于 2013-07-12T12:07:29.233 回答
0

此方法只需要安装 7zip。
在每个 7zip 系统上都能完美运行。
根本不需要 python 包。

import subprocess
subprocess.run('7z x -oOutdir archive.rar')

子进程模块是 python 自带的。

于 2022-02-14T01:36:42.993 回答