Как извлечь 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 МБ / с).