我正在寻找简化/封装,因此我使用(原文如此) open(“my_file.txt”)的现有程序可以移植到实验室,并且现有逻辑流程的变化最小。很高兴在我现有的逻辑之前有一些剪切/粘贴逻辑。
我从谷歌(here)理解的心理模型是我必须做这些先决条件才能加载我的文件。
然后我可以执行我现有的代码,无需更改。
因此我怀疑/建议对我有用的东西(但不仅仅是我!)将是一个接口/功能如下:
使用此代码片段,我可以轻松地将代码移动到colaboratory中。
有没有人创建过这个?
谢谢。
答案 0 :(得分:2)
我一直在处理类似的问题。在简单性方面,我发现将数据文件保存在Google云端存储中最为容易。它在教程中得到了很好的解释 - https://colab.research.google.com/notebook#fileId=/v2/external/notebooks/io.ipynb
我发现最简单的事情是插入单元格以将数据复制到运行笔记本的VM
!gsutil cp gs://{bucket_name}/to_upload.txt /tmp/gsutil_download.txt
通过这种方式我通常可以保持“活跃”状态。代码阻塞与我在本地运行的相同。
当我出去玩时,我会使用chromebook,所以我希望尽可能多地保留在云中。设置映射网络驱动器非常容易。 (在Windows中说话)到GCS桶 - 用于移动文件。它在Linux上也很容易。 Windows,我发现这个实用程序非常方便https://www.cloudberrylab.com/drive/google-cloud.aspx - 不是广告,我只是一个粉丝。
答案 1 :(得分:0)
上传到Google云端硬盘。 这是直接访问它的代码段。
!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
from google.colab import auth
auth.authenticate_user()
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}
现在创建驱动器目录
!mkdir -p drive
!google-drive-ocamlfuse drive
您可以简单地以驱动器/文件名的形式访问Google驱动器中存在的任何文件
例如。
df = pandas.read_hdf("drive/Colab Notebooks/S2C5_complete_cleaned_by_me_10percent.h5")
此外,您只需要为一个笔记本执行一次此操作。之后,您还可以访问其他笔记本中的数据。