web-dev-qa-db-fra.com

Comment télécharger plusieurs fichiers ou un dossier entier à partir de Google Colab?

Actuellement, je peux télécharger des fichiers sous forme de fichiers individuels avec la commande 

files.download(file_name)

J'ai également essayé de les télécharger sur le lecteur avec l'extrait de code ci-dessous, mais il les télécharge sous forme de fichiers individuels.

uploaded = drive.CreateFile({'title': file_name})
uploaded.SetContentString('Sample upload file content')
uploaded.Upload()
print('Uploaded file with ID {}'.format(uploaded.get('id')))

Comment puis-je télécharger plusieurs fichiers sous forme de dossier sur mon ordinateur local? Ou comment puis-je télécharger ces fichiers sous forme de dossier sur mon lecteur google?

4
tetedp

J'ai créé un fichier Zip:

!Zip -r /content/file.Zip /content/Folder_To_Zip

Alors j'ai téléchargé ce fichier Zip:

from google.colab import files
files.download("/content/file.Zip")
2
Shashank Mishra

Copiez ce code dans une cellule et modifiez les 2 champs nom_fichier et folder_or_files_to_save . Il compressera tous les dossiers ou fichiers dans un fichier zip et les enregistrera dans votre lecteur Google.

#@title save yo data to drive
filename = "kerasmodel" #@param {type:"string"}
folders_or_files_to_save = "keras_model.h5" #@param {type:"string"}
from google.colab import files
from google.colab import auth
from googleapiclient.http import MediaFileUpload
from googleapiclient.discovery import build

def save_file_to_drive(name, path):
    file_metadata = {
    'name': name,
    'mimeType': 'application/octet-stream'
    }

    media = MediaFileUpload(path, 
                  mimetype='application/octet-stream',
                  resumable=True)

    created = drive_service.files().create(body=file_metadata, media_body=media, fields='id').execute()

    print('File ID: {}'.format(created.get('id')))

    return created


extension_Zip = ".Zip"

Zip_file = filename + extension_Zip

# !rm -rf $Zip_file
!Zip -r $Zip_file {folders_or_files_to_save} # FOLDERS TO SAVE INTO Zip FILE

auth.authenticate_user()
drive_service = build('drive', 'v3')

destination_name = Zip_file
path_to_file = Zip_file
save_file_to_drive(destination_name, path_to_file)
0
skaem

Utilisez tar pour regrouper les fichiers d’un répertoire dans un seul fichier.

Par exemple, voici un extrait qui crée un répertoire, 3 fichiers et une archive .tar contenant le groupe:

!mkdir demo
!echo a > demo/a
!echo b > demo/b
!echo c > demo/c
!tar -cvf demo.tar demo/

Le fichier à télécharger serait demo.tar dans ce cas. Pour plus de conseils, recherchez la création et l’extension d’archives tar.

0
Bob Smith