优雅地用Python将.rar转换为.zip

2 投票
3 回答
7143 浏览
提问于 2025-04-15 16:08

我现在正在使用系统命令来执行“解压缩和压缩”操作。当遇到需要密码的压缩文件时,它会中断,并要求我输入密码。

有没有办法让它继续运行,并在出现错误或需要输入密码时返回一个“失败”的值给主程序呢?

我们能不能直接使用rarfile和zipfile这两个库来完成这个任务,而不需要创建任何临时文件呢?

3 个回答

0

第一步)使用命令安装 patool,这个工具可以帮助你处理各种压缩文件。

第二步)接着安装 pyunpack,这个工具可以让你更方便地解压文件。

第三步)然后写下面这段代码。

from pyunpack import Archive

Archive("myfile.rar").extractall(".")
0

也许这个链接对你有帮助:http://www.noah.org/wiki/Pexpect#Description_of_Pexpect

2

我觉得在不使用临时文件的情况下完成这个任务是非常困难的。如果你要转换非常大的文件,就需要在硬盘上使用一些临时空间。

你可以使用PyUnRAR2库,这个库可以让你查看和提取RAR压缩包里的文件。你可以把文件提取到一个用tempfile这个Python模块创建的临时文件夹里。之后,再使用zipfile这个Python模块来创建一个ZIP文件。

需要注意的是,要使用PyUnRAR2,你需要RAR的专有二进制文件。

撰写回答