¿Cómo descargo varios archivos o una carpeta completa de Google Colab?

4 minutos de lectura

avatar de usuario de tetedp
tetedp

Actualmente, puedo descargar archivos como archivos individuales con el comando

files.download(file_name)

También intenté cargarlos en la unidad con el fragmento de código a continuación, pero los está cargando como archivos individuales.

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

¿Cómo puedo descargar varios archivos como una carpeta en mi computadora local? ¿O cómo puedo cargar estos archivos como una carpeta en mi unidad de Google?

He creado un archivo zip:

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

Entonces he descargado ese archivo zip:

from google.colab import files
files.download("/content/file.zip")

  • También vale la pena señalar que, si tiene problemas para descargar un archivo grande files.download()también puede hacer clic en el ícono de cheurón derecho en la esquina superior izquierda y explorar todos los archivos debajo del Files pestaña y descargue manualmente el archivo.

    – danny

    19 de enero de 2020 a las 13:38

  • Si pregunta: “¿Dónde está file.zip?” puede encontrarlo en la parte inferior del panel izquierdo de Colab Notebook. Luego puede descargarlo haciendo clic derecho sobre él.

    – iedmrc

    20 de julio de 2020 a las 10:53

  • mi nombre de archivo está en python. . . ¿Cómo traduces mi código python a ese formato?

    – Jitín

    1 de agosto de 2020 a las 7:03

  • Para mí, por alguna razón, se quedó files.download(tamaño .zip ~2mb), pero pude descargarlo a través de Files a mano.

    – mrgloom

    5 de agosto de 2021 a las 16:06

Avatar de usuario de Muhammad Ali Abbas
Muhammad Alí Abbas

Por ejemplo, si tiene que descargar la carpeta de registro:

!zip -r log.zip log/

-r representar recursivo

mientras log.zip es el archivo zip de destino y
log/ es la ruta de la carpeta de origen

ingrese la descripción de la imagen aquí

Avatar de usuario de Iván
Iván

Encontre eso:

!zip -r ./myresultingzippedfolderwithallthefiles.zip ./myoriginalfolderwithallthefiles/

trabajó para mí en colab.

Aquí . puede ser su directorio de inicio o el directorio donde se encuentra su original myoriginalfolderwithallthefiles es y donde myresultingzippedfolderwithallthefiles.zip se creará. Cambie los directorios según sea necesario.

!zip -r /content/sample_data.zip /content/sample_data
# change sample_data.zip to your desired download name Ex: nothing.zip
# change sample_data to your desired download folder name Ex: ner_data 

ingrese la descripción de la imagen aquí

En mi caso, tuve que descargar una carpeta completa que contenía archivos h5 (para enviar un proyecto universitario) de cada modelo que construyó mi computadora portátil. La forma más fácil que encontré para descargar esta carpeta y, por lo tanto, todos los archivos en la carpeta es arrastre y suelte la carpeta en la carpeta “Mi unidad” en el mismo árbol de carpetas.

Carpeta de Drive y carpeta que se va a cargar resaltadas

Obviamente luego descargué la carpeta de Google Drive.

Avatar de usuario de Shubham Panchal
Shubham Panchal

Puede usar código para comprimir carpetas y descargarlas usando files.

#@title Utility to zip and download a directory
#@markdown Use this method to zip and download a directory. For ex. a TB logs 
#@markdown directory or a checkpoint(s) directory.

from google.colab import files
import os

dir_to_zip = 'dir_name' #@param {type: "string"}
output_filename="file.zip" #@param {type: "string"}
delete_dir_after_download = "No"  #@param ['Yes', 'No']

os.system( "zip -r {} {}".format( output_filename , dir_to_zip ) )

if delete_dir_after_download == "Yes":
    os.system( "rm -r {}".format( dir_to_zip ) )

files.download( output_filename )

avatar de usuario de skaem
skaem

Copie este código en una celda y cambie los 2 campos filename y folders_or_files_to_save. Comprimirá todas las carpetas o archivos en un archivo zip y lo guardará en su unidad de 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)

¿Ha sido útil esta solución?