如何在Google Colab中提取RAR文件

12
我有一个存储在谷歌云端硬盘中的数据集,想在谷歌Colab中使用。但是无论如何我都不能解压缩rar文件。到目前为止,我已经尝试安装Python库和Ubuntu软件包,如"unrar, rar, unrar-free, unar, unp",但仍然无法打开该文件。以下是每个命令的结果:
!rar x data.rar
RAR 5.40   Copyright (c) 1993-2016 Alexander Roshal   15 Aug 2016
Trial version             Type RAR -? for help


Extracting from meta-data.rar

Cannot create meta-data/sample_submission.csv
No such file or directory
Cannot create meta-data/test.csv
No such file or directory
Cannot create meta-data/train.csv
No such file or directory
Cannot create directory meta-data
Input/output error
Total errors: 4

!unrar data.rar

UNRAR 5.50 freeware      Copyright (c) 1993-2017 Alexander Roshal


Extracting from meta-data.rar

Cannot create meta-data/sample_submission.csv
No such file or directory
Cannot create meta-data/test.csv
No such file or directory
Cannot create meta-data/train.csv
No such file or directory
Cannot create directory meta-data
Input/output error
Total errors: 4

!unp meta-data.rar

RAR 5.40   Copyright (c) 1993-2016 Alexander Roshal   15 Aug 2016
Trial version             Type RAR -? for help


Extracting from meta-data.rar

Cannot create meta-data/sample_submission.csv
No such file or directory
Cannot create meta-data/test.csv
No such file or directory
Cannot create meta-data/train.csv
No such file or directory
Cannot create directory meta-data
Input/output error
Total errors: 4

UNRAR 5.50 freeware      Copyright (c) 1993-2017 Alexander Roshal


Extracting from meta-data.rar

Cannot create meta-data/sample_submission.csv
No such file or directory
Cannot create meta-data/test.csv
No such file or directory
Cannot create meta-data/train.csv
No such file or directory
Cannot create directory meta-data
Input/output error
Total errors: 4
Can't exec "file": No such file or directory at /usr/bin/unp line 419.
Failed to detect file type of meta-data.rar.
WARNING: There were errors while processing files!

其他人也没有工作,所以欢迎任何想法。

7个回答

14

以下代码片段对我有用:

!pip install unrar
!unrar x file_path

6
以下代码片段适用于我:
get_ipython().system_raw("unrar x file_name")

6
!pip install pyunpack
!pip install patool
from pyunpack import Archive
Archive('Location of the rar file').extractall('Location where you want to have the folder')

看看这段代码片段

非常简单且速度极快


0

试试这个:

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

0
!unrar x "{Complete path to rar file}"

这对我有用


1
我认为不需要在双引号内给出路径。 - Kirushikesh

0
你可以编写一个简单的Python代码,在Google Colab中直接从Google Drive中提取zip文件。
注意:为了使该代码正常运行,您需要在Colab中安装名为rarfile的模块。您可以通过以下代码片段来实现:
pip install rarfile

不用深入了解它是如何工作的,可以将下面的代码片段复制到Google Colab中并运行该单元。

def unrar(dpath,xpath):
  for rar in os.listdir(dpath):
    filepath = os.path.join(dpath, rar)
    with rarfile.RarFile(filepath) as opened_rar:
      for f in opened_rar.infolist():
        print (f.filename, f.file_size)
        opened_rar.extractall(xpath)

unrar(dpath,xpath)

在这里,dpath 是您的 .rar 文件所在的路径目录。 xpath 是您想要提取它的位置。

-3

从那时起,我尝试了很多解决方案,但最好的方法是使用“rsync” Linux命令(使用“!apt install rsync”安装rsync)将文件从驱动器传输到collab的存储中,然后使用“unzip”命令。之后速度非常快(71.32MB/s)。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接