在Python中将RAR文件的内容读入内存

Bre*_*lor 6 python linux rar stream

我正在寻找一种方法从rar存档读取特定文件到内存.具体来说,它们是编号图像文件的集合(我正在写一个漫画阅读器).虽然我可以简单地解开这些文件并根据需要加载它们(完成后删除它们),但我希望尽可能避免这种情况.

总而言之,如果可能的话,我更喜欢跨平台(Windows/Linux)的解决方案,但Linux是必须的.同样重要的是,如果您要指出一个库来处理这个问题,请理解它必须是免费的(如啤酒)或OSS.

ars*_*ars 8

请参阅rarfile模块:

  • 遗憾的是,您仍然需要unrar来实现这一点 - 它只是运行外部实用程序的一个很好的API. (3认同)

Nic*_*tin 6

真正的答案是没有图书馆,而且你也无法建立一个图书馆。您可以使用 rarfile,也可以使用 7zip unRAR(它的免费程度低于 7zip,但仍然像啤酒一样免费),但这两种方法都需要外部可执行文件。RAR 的许可证基本上要求这样做,因为虽然您可以获得 unRAR 的源代码,但您不能以任何方式对其进行修改,将其转换为库将构成非法修改。

此外,固体 RAR 存档(最好的压缩)无法随机访问,因此无论如何您都必须取消存档整个文件。WinRAR 提供的 UI 似乎可以避免这种情况,但实际上它只是在后台解压和重新打包存档。