【问题标题】:Google colab access Machine's local drives directly using Os.listdirGoogle colab 直接使用 Os.listdir 访问 Machine 的本地驱动器
【发布时间】:2019-12-07 04:57:33
【问题描述】:

我是 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 是否有另一种方法可以直接从我的驱动器中读取数据?

提前致谢。

【问题讨论】:

    标签: python google-colaboratory listdir


    【解决方案1】:

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

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

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

    注意:或者,单击文件 >> 装载驱动器,这将插入代码-sn-p 以将 Google 驱动器装载到您的 Colab 笔记本中。运行该单元后,您将看到 GDrive 已安装。

    1. 启动本地运行时,然后访问它。在这种情况下,colab 使用您的本地资源,并且它也可以访问本地文件。在启动此选项之前,请务必阅读安全问题/警告。我没有亲自尝试过,你自己在那里。

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

    将 Colab 连接到本地运行时

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

    步骤一

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

    第二步

    点击超链接:these instructions,在如下所示的弹出窗口中(在步骤3中),安装jupyter_http_over_ws,如果尚未安装。

    1. 安装并启用jupyter_http_over_ws jupyter 扩展(一次性)
    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

    第三步

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

    【讨论】:

    • 感谢您对每个解决方案的详细解释,它们非常有帮助。我有另一个问题。如果我的本地计算机上有我需要的文件/数据,这将有效。如果我有大量文件/数据存储在我的计算机上的映射网络驱动器(公司服务器)上,有没有办法直接访问而不是复制文件?复制文件可能需要很长时间。
    • 如果复制文件是一个问题,那么您可以使用“将 Colab 连接到本地运行时”方法,因为这样您就可以将 colab 的接口连接到本地 jupyter 运行时,并且您还可以访问本地数据(网络也映射)。
    • 请注意,我将尝试该方法。非常感谢!
    【解决方案2】:

    ,除了files.upload(),别无他法,因为的方法。但我认为您正在寻找一种更用户友好的方式来获取文件。您可以将文件拖放到 Google Drive 中,然后通过插入以下行将其挂载到您的 Google Colab 会话中在一个单元格中并执行它:

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

    它会提示你去一个 URL 来验证你自己。单击 URL 并允许 Google Colab 访问您的 Google Drive 文件后,您就可以访问您的 Google Drive 文件。更详细的解释在这里:Import data into Google Colaboratory

    【讨论】:

      猜你喜欢
      • 2020-05-03
      • 1970-01-01
      • 2020-02-02
      • 2019-02-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-04-22
      • 1970-01-01
      相关资源
      最近更新 更多