Как извлечь RAR файлы в Google Colab

У меня есть набор данных в google drive, который я хочу использовать в google 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 ответов

У меня сработал следующий фрагмент кода:

!pip install unrar
!unrar x file_path

Следующий фрагмент кода работал для меня:

get_ipython().system_raw("unrar x file_name")
!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')

Посмотрите этот фрагмент кода

Действительно просто и супер быстро

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

Это сработало для меня

Вы можете написать простой код на Python для извлечения zip-файла прямо на ваш Google диск из Google 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 именно там вы хотите его извлечь.

Попробуй это:

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

С тех пор я перепробовал множество решений, но лучшим из них было перенести файл с диска в хранилище Collab с помощью команды Linux "rsync" (установить rsync с помощью "! Apt install rsync"), а затем команду "распаковать". После этого он работает молниеносно (71,32 МБ / с).

Другие вопросы по тегам