我目前正在对“unrar 和 zip”命令进行系统调用。当遇到需要密码保护的档案时,它会中断并要求我输入密码。
是否可以让它运行并在出现任何错误或密码提示时向主程序返回“不成功”值?
我们可以原生使用 rarfile 和 zipfile 库来完成这项工作而不创建任何临时文件吗?
我认为不使用临时文件很难完成任务。如果您要转换非常大的文件,则需要使用磁盘中的临时空间。
您可以使用 PyUnRAR2 库,它可以让您检查和提取 RAR 存档的文件。您可以将文件提取到使用 tempfile python 模块创建的临时文件夹中。之后使用 zipfile python 模块创建一个 ZIP 文件。
请注意,为了使用 PyUnRAR2,您需要 RAR 专有二进制文件。
步骤1)pip install patool
步骤2)pip install pyunpack
第3步)编写此代码
从 pyunpack 导入存档
Archive("myfile.rar").extractall(".")