Как извлечь все файлы .rar из папки (gdrive) из google colab?

#python #directory #google-colaboratory

Вопрос:

У меня есть папка, состоящая из множества .rar файлов. Мне нужно извлечь все .rar файлы из этой папки. Я подключил свою учетную запись gdrive к colab. То, что я сделал, это:

 data_path = "content/gdrive/My Drive/folder"
for file in os.scandir(data_path):
    !unrar x file.path "/content/drive/path/output_folder/"
 

но я получил ошибку:

 Cannot open file.path
No such file or directory
No files to extract
 

Я думаю file.path , будет работать с тех пор, как я использовал:

 for file in os.scandir(data_path):
    print(file.path)
 

Он печатает все пути к файлам в этой папке

Как это сделать эффективно?

Ответ №1:

Для использования переменной в !unrar вам необходимо использовать этот код

 file_path = '/content/drive/MyDrive/Colab Notebooks/123.rar'
!unrar x '$file_path'
 

Итак, в вашей ситуации у вас будет следующий код:

 data_path = "/content/gdrive/My Drive/folder"
for file in os.scandir(data_path):
    !unrar x '$file.path' "/content/drive/path/output_folder/"
 

Комментарии:

1.можно ли задать выходной каталог в качестве относительного пути? вот так data_path = Path("./Data/") for file in os.scandir(data_path): !unrar x '$file.path' data_path