在Google Colab中导入.py文件

Reh*_*mir 42 ipython jupyter-notebook google-colaboratory

有没有办法在.py文件中上传我的代码并在colab代码单元格中导入它们?

我找到的另一种方法是创建一个本地Jupyter笔记本然后将其上传到Colab,这是唯一的方法吗?

Kor*_*ich 47

您可以先保存它,然后导入它.

from google.colab import files
src = list(files.upload().values())[0]
open('mylib.py','wb').write(src)
import mylib
Run Code Online (Sandbox Code Playgroud)

更新(11月18日):现在您可以轻松上传

  • 单击[>]打开左窗格
  • 选择文件标签
  • 点击[上传]并选择你的[mylib.py]
  • 导入mylib

  • @eswaraamirthans 你忘记了点“。” 在最后。 (5认同)
  • @rsam然后尝试第二种方法。我尝试过,它对我有用。 (2认同)
  • 如果您使用文件选项卡方法,则必须在每次运行时重复上传 (2认同)

Adi*_*hra 9

  1. 您可以使用google.colab.files中的upload()函数将本地文件上传到google colab
  2. 如果你在github上有文件,那么使用!git clone https://github.com/username/repo_name.git克隆repo .然后就像在jupyter笔记本中使用魔术函数%load 加载它%load filename.py.

  • 第二种方法对我有用,我只需添加存储库的名称:`%load repo_name/filename.py` (2认同)

小智 8

根据Korakot Chaovavanich的回答,我创建了下面的函数来下载Colab实例中所需的所有文件.

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()
Run Code Online (Sandbox Code Playgroud)

然后,您可以使用通常的"import"语句在Colab中导入本地文件.我希望这有帮助


小智 8

如果其他人有兴趣知道如何从Google colab内的gdrive导入文件/包。以下过程对我有用:

1)在Google Colab中挂载您的Google驱动器:

from google.colab import drive
drive.mount('/content/gdrive/')
Run Code Online (Sandbox Code Playgroud)

2)使用sys将目录附加到您的python路径:

import sys
sys.path.append('/content/gdrive/mypythondirectory')
Run Code Online (Sandbox Code Playgroud)

现在您应该可以从该目录导入东西了!


小智 5

我们可以这样做。

import sys
import os

py_file_location = "/content/drive/My Drive"
sys.path.append(os.path.abspath(py_file_location))
Run Code Online (Sandbox Code Playgroud)

现在您可以将它作为模块导入到笔记本中的那个位置。

import whatever
Run Code Online (Sandbox Code Playgroud)