编程语言
首页 > 编程语言> > python-Google colaboratory和Google Cloud之间的接口

python-Google colaboratory和Google Cloud之间的接口

作者:互联网

从Google colaboratory,如果我想读/写到在Google Cloud中创建的给定存储桶中的文件夹,我该如何实现?

我创建了一个存储桶,存储桶中的文件夹,并将一堆图像上传到其中.现在从colaboratory,使用jupyter笔记本,想要创建多个子目录,以将这些图像组织到训练,验证和测试文件夹中.

随后访问相应的文件夹以进行训练,验证和测试模型.

使用Google驱动器后,我们只需在身份验证后使用以下命令更新路径即可直接定向到特定目录.

import sys
sys.path.append('drive/xyz')

我们也在台式机版本上做类似的事情

import os
os.chdir(local_path)

Google Cloud Storage是否存在类似的东西?

我喜欢常见问题解答,它有读写单个文件的过程,在这里我们需要设置整个路径.将主目录重新组织成子目录并分别访问它们将很繁琐.

解决方法:

通常,尝试将GCS存储桶安装在本地计算机上不是一个好主意(这将使您可以使用它,如前所述).从Connecting to Cloud Storage buckets开始:

Note: Cloud Storage is an object storage system that does not have the
same write constraints as a 07001 file system. If you write data
to a file in Cloud Storage simultaneously from multiple sources, you
might unintentionally overwrite critical data.

假设无论警告如何,您都希望继续操作,如果您使用的是Linux操作系统,则可以使用Cloud Storage FUSE适配器安装它.参见相关的How to mount Google Bucket as local disk on Linux instance with full access rights.

从python应用程序访问GCS的推荐方法是使用Cloud Storage Client Libraries,但是访问文件会有所不同
比您的摘要中.您可以在Python Client for Google Cloud Storage找到一些示例:

from google.cloud import storage
client = storage.Client()
# https://console.cloud.google.com/storage/browser/[bucket-id]/
bucket = client.get_bucket('bucket-id-here')
# Then do other things...
blob = bucket.get_blob('remote/path/to/file.txt')
print(blob.download_as_string())
blob.upload_from_string('New contents!')
blob2 = bucket.blob('remote/path/storage.txt')
blob2.upload_from_filename(filename='/local/path.txt')

更新:

协作文档基于Google API Client Library for Python推荐了另一种我忘记的方法,但是请注意,它也不能像常规文件系统那样工作,它使用本地文件系统上的中间文件:

> uploading files to GCS
> downloading files from GCS

标签:google-colaboratory,google-cloud-storage,jupyter-notebook,google-cloud-platform,
来源: https://codeday.me/bug/20191025/1927800.html