'How to upload folders to Google Colab?

I want to run a notebook that uses many header files defined in the directory. So basically I want to upload the entire directory to Google Colab so that I can run the notebook. But I am unable to find any such options and only able to upload files not complete folders. So can someone tell me how to upload entire directory to google colab?



Solution 1:[1]

You can zip them, upload, then unzip it.

!unzip file.zip

Solution 2:[2]

The easiest way to do this, if the folder/file is on your local drive:

  1. Compress the folder into a ZIP file.
  2. Upload the zipped file into colab using the upload button in the File section. Yes, there is a File section, see the left side of the colab screen.
  3. Use this line of code to extract the file. Note: The file path is from colab's File section.
from zipfile import ZipFile
file_name = file_path

with ZipFile(file_name, 'r') as zip:
  zip.extractall()
  print('Done')
  1. Click Refresh in the colab File section.
  2. Access the files in your folder through the file paths

Downside: The files will be deleted after the runtime is over.

You can use some part of these steps if your file is on a Google Drive, just upload the zipped file to colab from Google Drive.

Solution 3:[3]

you can create a git repository and push the files and folders to it, and then can clone the repository in colaboratory with the command

!git clone https://github.com/{username}/{projectname}.git

i feel this method is faster. but if the file size is more than 100 mb you will have to zip the file or will have to add extentions to push it to github. for more information refer the link below.

https://help.github.com/en/github/managing-large-files/configuring-git-large-file-storage

Solution 4:[4]

The best way to approach this problem is simple yet tricky sometimes.

You first need to compress the folder into a zipped file and upload the same into your google drive.

While doing so, Make sure that the folder is in the root directory of the drive and not in any other subfolder!. If the compressed folder/data is in other subfolder, you can easily move the same into the root directory.

Compresses folder/data in another subfolder often messes with the unzipping process when you will be specifying the file location.

Once you did the afore mentioned tasks, enter the following commands in the colab to mount your drive:

from google.colab import drive
drive.mount('/content/gdrive')

This will ask for an access token that can be generated by clicking on the url displayed in the output of the same cell

!ls gdrive/MyDrive

Check the contents of the drive by executing the above command and ensure that your folder/data is displayed in the output.

!unzip gdrive/MyDrive/<File_name_without_space>.zip

eg:

!unzip gdrive/MyDrive/data_folder.zip

Executing the same will start unzipping your folder into the memory.

Congrats! You have successfully uploaded your folder/data into the colab.

Solution 5:[5]

zip your files zip -r file.zip your_folder and then:

from google.colab import files
from zipfile import ZipFile

with ZipFile(files.upload(), 'r') as zip:
  zip.extractall()
  print('Done')

Solution 6:[6]

So here's what you can do: -upload the dataset desired folder to your drive -over colab, mount the drive wherein this "from google.colab import drive drive.mount('/content/gdrive')" automatically shows up and you just need to run it -then check for your file over the Files section on the left-hand side (if folder not visible try refreshing, also there should be a drop-down arrow next to it where you can check all the files under the folder ) -left-click over the folder wherein you get a COPY PATH option -paste the copied path over the desired location in your colab

Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source
Solution 1 korakot
Solution 2 Jeremy Caney
Solution 3 Lavanya V
Solution 4 SHAGUN SHARMA
Solution 5 Thiago Estacio
Solution 6 Aafreen