下载时unrar存档

Mat*_*nti 4 python rar download archive unrar

我有一个程序下载part01,然后part02等rar文件分裂在互联网上.我的程序首先下载part01,然后是part02,依此类推.经过一些测试,我发现使用例如UnRAR2 for python我可以提取存档中包含的文件的第一部分(.avi文件),我可以在第一分钟播放它.当我添加另一个文件时,它会提取更多,依此类推.我想知道的是:是否可以在下载文件时提取单个文件?我需要它开始提取part01而不必等待它完成下载......这可能吗?

非常感谢你!

马特奥

Gfy*_*Gfy 8

您正在谈论rar档案中的.avi文件.你确定档案实际上是压缩的吗?warez场景发布的视频文件不使用压缩:

由于文件大小,仍然打包翻录的电影,但不允许压缩,并且RAR格式仅用作容器.因此,现代播放软件可以直接从打包文件中轻松播放,甚至可以在下载版本时对其进行流式传输(如果网络速度足够快).

(我在考虑VLC,BSPlayer,KMPlayer,Dziobas Rar Player,rarfilesource,rarfs,...)您可以按如下方式检查压缩:

  • 在WinRAR中打开第一个.rar存档.(name.part01.rar或name.rar用于旧式卷名)
  • 单击信息按钮.

如果要提取的版本指示2.0,则存档不使用压缩.(除非你有十年前的rars)你可以看到总大小打包大小相等.

是否可以在下载时提取单个文件?

是.如果不使用压缩,您可以编写自己的程序来提取文件.(我知道有人编写了一个脚本来直接从外部rar文件下载电影;但它不公开,我也没有.)因为你提到了Python,我建议你看看Marko Kreen的rarfile 2.2就像pyarrfs的作者做了.存档只是添加了标题(rar块)的文件.这将是一个复制操作,您需要暂停,直到下载下一个存档.

我坚信压缩文件也是可能的.这里的方法会有所不同,因为您必须使用unrar来提取压缩文件.我必须补充说,还有一个免费的RARv3实现来提取在Unarchiver中实现的 rars.

我认为(un)rar的这个参数可以实现:

-vp     Pause before each volume

        By default RAR asks for confirmation before creating
        or unpacking next volume only for removable disks.
        This switch forces RAR to ask such confirmation always.
        It can be useful if disk space is limited and you wish
        to copy each volume to another media immediately after
        creation.
Run Code Online (Sandbox Code Playgroud)

它将使您可以暂停提取,直到下载下一个存档.

我相信如果rar是在启用'solid'选项的情况下创建的,那么这将不起作用.

当solid选项用于rars时,所有打包文件都被视为一个大文件流.如果始终从第一个文件开始,即使它不包含要提取的文件,也不会导致任何问题.我也认为它适用于密码档案.