Google colaboratory 将本地文件导入google colab
我不明白colab是如何处理目录的,我创建了一个笔记本,colab将它放在/googledrive/colab笔记本中 现在我需要导入一个文件(data.py),其中有一系列我需要的函数。直觉告诉我将文件放在同一个目录中,并使用以下方法导入: 导入数据 但显然不是这样的 我还尝试将目录添加到路径集,但指定的目录不正确 有人能帮忙吗Google colaboratory 将本地文件导入google colab,google-colaboratory,Google Colaboratory,我不明白colab是如何处理目录的,我创建了一个笔记本,colab将它放在/googledrive/colab笔记本中 现在我需要导入一个文件(data.py),其中有一系列我需要的函数。直觉告诉我将文件放在同一个目录中,并使用以下方法导入: 导入数据 但显然不是这样的 我还尝试将目录添加到路径集,但指定的目录不正确 有人能帮忙吗 提前谢谢 Colab笔记本电脑存储在Google Drive上。但它是在另一个虚拟机上运行的。因此,您也需要将data.py复制到那里。这样做可以通过Colab上传d
提前谢谢 Colab笔记本电脑存储在Google Drive上。但它是在另一个虚拟机上运行的。因此,您也需要将data.py复制到那里。这样做可以通过Colab上传data.py
from google.colab import files
files.upload()
# choose the file on your computer to upload it then
import data
将本地文件从系统上载到协作存储/目录。
from google.colab import files
def getLocalFiles():
_files = files.upload()
if len(_files) >0:
for k,v in _files.items():
open(k,'wb').write(v)
getLocalFiles()
所以,我终于解决了这个问题。但是,我必须指出,在我的例子中,我必须处理几个一直在变化的文件和专有模块 我发现最好的解决方案是使用FUSE包装器将colab“链接”到我的google帐户。我使用了这个特殊的工具: 这里有一个如何在那里设置环境的示例,但下面是我如何做到的:
# Install a Drive FUSE wrapper.
!apt-get install -y -qq software-properties-common python-software-properties module-init-tools
!add-apt-repository -y ppa:alessandro-strada/ppa 2>&1 > /dev/null
!apt-get update -qq 2>&1 > /dev/null
!apt-get -y install -qq google-drive-ocamlfuse fuse
# Generate auth tokens for Colab
from google.colab import auth
auth.authenticate_user()
# Generate creds for the Drive FUSE library.
from oauth2client.client import GoogleCredentials
creds = GoogleCredentials.get_application_default()
import getpass
!google-drive-ocamlfuse -headless -id={creds.client_id} -secret={creds.client_secret} < /dev/null 2>&1 | grep URL
vcode = getpass.getpass()
!echo {vcode} | google-drive-ocamlfuse -headless -id={creds.client_id} -secret={creds.client_secret}
这个!ls命令将打印目录内容,以便您可以检查它的工作情况,仅此而已。现在,您已经拥有了所需的所有文件,可以对它们进行更改,而无需进一步复杂化。请记住,您可能需要重新启动内核以更新导入和变量
希望这对某人有用 要轻松上传本地文件,您可以使用新的Google Colab功能:
- 点击屏幕左侧的右箭头(在谷歌地图下方) Colab标志)
- 选择文件选项卡
- 点击上传按钮
它将打开一个弹出窗口,选择要从本地文件系统上载的文件。现在谷歌正式提供了对访问和使用Gdrive的支持 您可以使用以下代码将驱动器装载到Colab:
from google.colab import drive
drive.mount('/gdrive')
%cd /gdrive/My\ Drive/{location you want to move}
您可以在colab中编写以下命令来安装驱动器
from google.colab import drive
drive.mount('/content/gdrive')
您可以通过简单的linux命令wget将一些外部url下载到驱动器中,如下所示
!wget 'https://dataverse.harvard.edu/dataset'
谢谢,效果很好。。。如果在本地对data.py进行更改,如何在colab中更新它?我再次上传,但它没有更新。。。另外,有没有办法在colab中编辑.py文件?您可能需要先用
删除旧版本!rm data.py
,然后再次上载。您可能还需要导入importlib
和导入importlib.reload(data)
。@Danf您可以使用神奇的函数%load filename.py
在代码单元格中获取文件的内容并在那里编辑它。谢谢,我会尝试一下。。。你认为这比使用驱动器保险丝包装好吗?我正在寻找最有效的方法来设置我的环境…@Laura您可以使用zip/unzip一次性管理1000个文件。如果你真的想让它自动运行,可以选择pydrive、git clone和wget。你可以将代码上传到github,并在colabout中使用git clone,但我发现如果你需要处理大量不断变化的文件,用包装器链接Google drive会更好。当某些事情发生变化时,你所需要做的就是重新启动内核。你能回答这个问题吗?是的,我只需要找到我的代码,因为已经有一段时间了,从那以后我就不再使用colab了……发布了我的答案和我使用的工具!是的,我看到这个方法也很好。但是我的回答也不能被拒绝,因为对于同一个解决方案有不同的方法。它工作得很好,但是每次我们想要运行代码时,我们都应该再次上传它。有没有更简单的方法来访问这些文件?我想应该是!cd/gdrive/My\Drive/{location you want move}
而不是%cd/gdrive/My\Drive/{location you want move}
如果对python代码和shell脚本使用相同的单元格,那么对shell命令使用%
。否则,您将得到一个错误<代码>代码>仅在代码单元中有shell脚本时才起作用。
!wget 'https://dataverse.harvard.edu/dataset'