Google colab 直接使用 Os.listdir 访问机器的本地驱动器

Google colab access Machine's local drives directly using Os.listdir

我是 google colab 的新手,我正在弄清楚 google colab 是否能够直接访问我计算机的 cdrive 上的文件。

import os
path = 'C:\Users\guest\Desktop\'

for file in os.listdir(path):
    print(file)

出现的错误信息是 [Errno 2] No such file or directory: 'C:\Users\zhuan.lim\Desktop\script tools\Python Scripts\'

我在网上搜索了一些例子说要先上传文件使用:

from google.colab import files
uploaded = files.upload()

但是,google colab 是否有其他方法可以直接从我的驱动器中读取数据?

提前致谢。

不行,那files.upload()也没有别的办法了,因为就是。但我认为您正在寻找一种更加用户友好的方式来获取文件。您可以将文件拖放到 Google Drive,然后将其安装到您的Google 通过在单元格中插入以下行并执行它来进行 Colab 会话:

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

它会提示您前往 URL 进行身份验证。单击 URL 并允许 Google Colab 访问您的 Google Drive 文件后,您可以访问 Google Drive 文件。更详细的解释在这里:

解决方案

您基本上可以通过三种方式让 Google Colab 访问您计算机上的文件:

  1. 将文件上传到 Google Colab。
from google.colab import files
uploaded = files.upload()
  1. 将您的文件上传到您的 Google 云端硬盘帐户,然后在 Colab 上安装 Google 云端硬盘。根据我的经验,这是最方便的方法。另外,请注意,这允许您读取和写入 Google 驱动器(就像它是本地驱动器一样)。
from google.colab import drive
drive.mount('/content/gdrive')
!ls ./content/gdrive

加载后,单击左侧窗格中的 文件 以访问 file-structure,如以下屏幕截图所示。

Note: Alternatively, click on Files >> Mount Drive and this will insert the code-snippet to mount Google Drive into your Colab Notebook. Once you run that cell, you will see GDrive getting mounted.

  1. 启动本地运行时然后访问它。在这种情况下,colab 使用您的本地资源,并且它也可以访问本地文件。请在启动此选项之前阅读安全性 concerns/warning。我还没有亲自尝试过,你只能靠自己了。

我将在下面解释选项#3。

将 Colab 连接到本地运行时

Colab 让您可以连接到本地运行时。如果您已经按照 here 的说明安装了 jupyter_http_over_ws,您应该能够只提供用于启动本地运行时并从 colab 连接到它的端口。

第一步

单击重新连接,然后单击select“连接到本地运行时”。 (colab 的右上角)。

第 2 步

点击超链接:these instructions,在pop-up如下图(步骤3),安装jupyter_http_over_ws,如果尚未安装。

  1. 安装并启用 jupyter_http_over_ws jupyter 扩展 (one-time).
pip install jupyter_http_over_ws
jupyter serverextension enable --py jupyter_http_over_ws
  1. 启动服务器并验证.

新笔记本服务器正常启动,但您需要设置一个标志以明确信任来自 Colaboratory 前端的 WebSocket 连接。

jupyter notebook \
  --NotebookApp.allow_origin='https://colab.research.google.com' \
  --port=8888 \
  --NotebookApp.port_retries=0

有关更多详细信息,我鼓励您查看 these instructions

第 3 步

提供用于启动本地运行时(本地计算机上的 jupyter notebook)的正确端口号(例如 8888)。