希望使用实验室。获取驱动文件到python(封装)的最简单方法是什么?

时间:2017-12-23 02:20:39

标签: google-colaboratory

我正在寻找简化/封装,因此我使用(原文如此) open(“my_file.txt”)的现有程序可以移植到实验室,并且现有逻辑流程的变化最小。很高兴在我现有的逻辑之前有一些剪切/粘贴逻辑。

我从谷歌(here)理解的心理模型是我必须做这些先决条件才能加载我的文件。

  1. 上传到谷歌驱动器
  2. 下载到python(vm,可能在 / TMP)
  3. 然后我可以执行我现有的代码,无需更改。

    因此我怀疑/建议对我有用的东西(但不仅仅是我!)将是一个接口/功能如下:

    • 输入(来自本地计算机)
      • source_file_dir
      • source_file_name
      • (当然是隐式要求认证输入)
    • 输出
      • python_vm_file_dir(dir我可以在我的程序中使用; / tmp很好)
      • (隐含地我希望相同的dest_file_name)

    使用此代码片段,我可以轻松地将代码移动到colaboratory中。

    有没有人创建过这个?

    谢谢。

2 个答案:

答案 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")

此外,您只需要为一个笔记本执行一次此操作。之后,您还可以访问其他笔记本中的数据。