关于python:将本地数据文件加载到Colaboratory

Load local data files to Colaboratory

我只是想知道是否可以将本地数据文件(例如Google驱动器上的.xlsx或.csv文件)加载到Colaboratory中?


乍看之下,加载本地文件的示例让我有些困惑,因为没有地方可以指定文件路径。您需要做的就是复制并粘贴配方以解决此问题,但请注意:

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

将打开一个上传对话框窗口,您可以在其中浏览并选择要上传的本地文件。

然后

1
2
3
for fn in uploaded.keys():
  print('User uploaded file"{name}" with length {length} bytes'.format(
      name=fn, length=len(uploaded[fn])))

会向您显示访问刚刚上传的内容的密钥。

编辑以获得更多说明:字典uploaded将具有所选文件名的键-因此,例如,如果您选择文件my_test.txt,则可以使用uploaded['my_test.txt']访问该文件。


是的,所有这些方案都受支持。

有关访问本地文件和云端硬盘文件的配方,请查看I / O示例笔记本。

要访问xls文件,您需要将文件上传到Google表格。然后,您可以在同一I / O示例笔记本中使用gspread配方。

最近添加的一种上传本地文件的方法是使用右侧抽屉中的"文件"标签。

enter image description here

从那里,您可以使用"上传"按钮上传本地文件。

enter image description here

(您也可以通过在文件树中右键单击文件来下载文件。)


首先,执行此单元格应创建一个内联"选择文件"按钮

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

选择文件后,uploaded将是键(文件名)和值(编码的文件对象)的字典。要解码诸如Pandas之类的库文件,请尝试

1
2
3
import pandas as pd
import io
df = pd.read_csv(io.StringIO(uploaded['filename.csv'].decode('utf-8')))

之后,您的数据框df应该准备就绪了


对于那些希望通过另一种方式上传更多文件的人来说,将其放置在那里是一种选择-基本上,您可以通过Google云端硬盘上传文件。

运行以下代码(以前在某个地方找到了它,但是我再也找不到源了-归功于任何编写者!):

1
2
3
4
5
6
7
8
9
10
11
12
13
14
!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}

点击出现的第一个链接,提示您登录Google;之后,将会出现另一个请求访问您的Google云端硬盘的权限。

然后,运行此命令,创建一个名为" drive"的目录,并将您的Google Drive链接到该目录:

1
2
!mkdir -p drive
!google-drive-ocamlfuse drive

如果现在执行!ls,将存在目录drive,如果您执行!ls drive,则可以看到Google云端硬盘的所有内容。

因此,例如,如果我将名为abc.txt的文件保存在Google云端硬盘中的名为ColabNotebooks的文件夹中,则现在可以通过路径drive/ColabNotebooks/abc.txt进行访问


要将本地数据文件加载到Colab:

方法1:Google云端硬盘方法

  • 将数据文件从系统内存上传到Google驱动器。
  • 在Colab中挂载Google驱动器

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

  • 然后-> path ="/gdrive/My Drive/filename"

  • 您现在可以在Google Colab中访问Google驱动器文件。

    方法2:直接加载

    1
    2
    3
    4
    5
    6
    7
    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()

    方法3:使用导入文件

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


    要从系统获取数据以进行协作,请尝试以下操作:

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

    选择要上传的文件,然后按Enter键并完成。
    例如,我上传了一张图片,并使用以下代码显示了该图片:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    import cv2
    import numpy as np
    from matplotlib import pyplot as plt

    img = cv2.imread('image.jpg')
    img_cvt = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)

    plt.imshow(img_cvt)
    plt.show()

    这是一个两步过程。

    步骤1:首先使用以下代码在您的colab笔记本中调用文件选择器

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

    这将带您到文件浏览器窗口

    步骤2:要将文件的内容加载到Pandas数据框中,请使用以下代码

    1
    2
    3
    4
    import pandas as pd
    import io
    df = pd.read_csv(io.StringIO(uploaded['iris.csv'].decode('utf-8')))
    print(df)


    您可以使用以下URL在Google Colab中上传文件:

    1
    https://colab.research.google.com/notebooks/io.ipynb#scrollTo=vz-jH8T_Uk2c

    转到Local file system>Downloading files to your local file system
    然后运行代码。 之后,将出现浏览器按钮,供您从PC上传文件。


    假设您在Google驱动器上有一个名为Colab的文件夹,并且其中有一个csv文件。
    加载此文件

    1
    2
    3
    import pandas as pd
    titanic = pd.read_csv("drive/Colab/Titanic.csv")
    titanic.head(5)

    在此之前,您可能需要运行以下命令:

    首先运行这些代码,以安装必要的库并执行授权。

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    !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}

    当您运行上面的代码时,您应该看到如下结果:
    enter image description here

    单击链接,复制验证码并将其粘贴到文本框中。

    完成授权过程后,

    挂载您的Google云端硬盘:

    1
    2
    !mkdir -p drive
    !google-drive-ocamlfuse drive