Read file from drive in google colab

假如想象 提交于 2020-05-09 05:09:34

问题


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.


回答1:


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.




回答2:


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?




回答3:


The fact that you see ".csv.gsheet" filenames even though you upload ".csv" filenames makes me think that you're uploading your CSVs to sheets.google.com instead of drive.google.com. Can you confirm that uploading to drive.google.com makes things work?




回答4:


I (partially) found out what was going on based on Bob Smith and Ami F's answers.
I believe google drive blocks read access from files converted to drive formats (gsheet, gdoc, etc.). And so, whenever I tried to use !cat or open, I got an "operation unsupported" error. When I tried Bob's example, creating a file and then reading it, it worked on my notebook.
So I managed to prevent google from converting files, deleted the old files and uploaded everything to drive again. Now, all my csv's were being kept unchanged (no .gsheet extesion) and I am able to access them using open.



来源:https://stackoverflow.com/questions/53619189/read-file-from-drive-in-google-colab

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!