Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Read file from drive in google colab

I Have read the notebook about how to open drive. I already did as instructed using:

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

After this, I can use !ls to list the contents of my drive but I cannot read or open any file. I already tried:

with open("/content/drive/My Drive/filename.ext", "r") as file:

file = open("/content/drive/My Drive/filename.ext", "r")

!cp "/content/drive/My Drive/filename.ext" "filename.ext"

and also

import pandas as pd

file = pd.read_csv("/content/drive/My Drive/filename.ext")

But none of the above worked. I always get "operation not supported" or "cannot open file for reading". I have seen some suggestin to use PyDrive. But it is done by copy file from Google Drive to Google Drive. I don't get why you would have to copy back and forth files, since I need to iterate over all the files on the folder. Why can't google colab just read the file stored on drive? Or am I doing something wrong? Another thing is that I uploaded a bunch of csv files, but google drive lists them as ".csv.gsheet" (using glob). Could that be the problem? I have no other ideas.

like image 251
RenatoSz Avatar asked Dec 04 '18 18:12

RenatoSz


3 Answers

It is straight forward.

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

This will ask to open a url which will authorize the mount after you copy paste the token.

If you are not able to read files even now, then prefix your file path with this: 'drive/My Drive' and you are good to go.

For example: file = 'drive/My Drive/data/file.txt'

Where data is a directory in my Google Drive containing file.txt file.

like image 144
MANU Avatar answered Nov 09 '22 01:11

MANU


I ran into a similar issue last night. As some of the previous responders posted there are concerns that influence your ability to read the file. These concerns are, one, making certain that your file is accessible via google drive from your Collab notebook and also, two, making certain that your file is in the correct format.

I will explain the steps and include a screen shot.

  1. Open Google Collab. Open the File Browser.
  2. Click the icon that says Mount Drive when hovered. This inserts a new cell in your notebook with the code:
from google.colab import drive
drive.mount('/content/drive')

Run the cell. You are prompted to accept permissions and get a token to use to mount the drive. Grant the permissions and copy and paste the code into the text input. Hit enter.

  1. The drive now appears in the file browser. Right click the folder /drive/My Drive or click the three dots action menu and select Upload.
  2. Locate your file on disk and Upload.
  3. The file appears in the File Browser. Right click the File (or use the three dots action menu) and select Copy Path.
  4. Paste that file path into your pd.read_csv() call.
  5. Run the cell with the pd.read_csv function call.
  6. You should now have the file uploaded in your Google Drive. Accessible to google collab and file formatting preserved because it not been accessed by any other program to munge the format.

Below is the example sans Permission tab because I previously granted permissions. enter image description here

like image 6
John Grant Avatar answered Nov 09 '22 01:11

John Grant


I just tried mounting and creating a Drive file as you described and couldn't reproduce the error you describe.

https://colab.research.google.com/drive/17iiKJPQOPv1eW5-Ctf707mPHXDtipE5G

Perhaps try resetting your backend using the Runtime -> Reset all runtimes menu. Or, can you share a notebook illustrating the problem?

like image 2
Bob Smith Avatar answered Nov 09 '22 03:11

Bob Smith