如何将非Txt数据从Colaboratory导出到Google云端硬盘?

时间:2018-02-03 23:29:35

标签: google-colaboratory

我正在运行Colab,我想将一些非txt数据(numpy数组,PIL图像,.h5 keras / tensorflow模型)保存到我的驱动器中。

我可以使用此脚本保存.txt文件

from pydrive.auth import GoogleAuth
from pydrive.drive import GoogleDrive
from google.colab import auth
from oauth2client.client import GoogleCredentials

# 1. Authenticate and create the PyDrive client.
auth.authenticate_user()
gauth = GoogleAuth()
gauth.credentials = GoogleCredentials.get_application_default() 
drive = GoogleDrive(gauth)

# PyDrive reference:
# https://googledrive.github.io/PyDrive/docs/build/html/index.html

# 2. Create & upload a file text file.
uploaded = drive.CreateFile({'title': 'Sample upload.txt'})
uploaded.SetContentString('Sample upload file content')
uploaded.Upload()
print('Uploaded file with ID {}'.format(uploaded.get('id')))

# 3. Load a file by ID and print its contents.
downloaded = drive.CreateFile({'id': uploaded.get('id')})
print('Downloaded content "{}"'.format(downloaded.GetContentString()))

但我无法将其用于其他类型的数据。

非常感谢任何帮助!

2 个答案:

答案 0 :(得分:2)

pydrive支持上传文件和字符串 - 请参阅this sample in the docs

此外,您还可以在创建文件时设置MIME类型,例如

uploaded = drive.CreateFile({'title': 'sample.csv', 'mimeType': 'text/csv'})

答案 1 :(得分:1)

我提出了解决方案:

假设您在Colab上生成了一张图片,并希望将其保存到Google云端硬盘中的特定文件夹中。

首先保存您的图像,就像您在本地计算机上一样:

from scipy.misc import imsave
imsave('my_image.png', my_image)

这允许您以名称my_image.png“临时”将图像保存在当前工作区中,但是它尚未保存到您的磁盘中。

您现在应该做的是将其上传到您的Google云端硬盘。这是如何做到的:

file = drive.CreateFile({'parents':[{u'id': folder_id}]})
file.SetContentFile('my_image.png')
file.Upload()

这会将my_image.png永久保存在指定文件夹(其id为folder_id)

希望这有帮助。