如何从谷歌云存储加载python上的.pickle文件

时间:2018-01-17 14:46:37

标签: python google-cloud-storage pickle

我的问题如下:

我在谷歌云存储中的存储桶中有两个.p(pickle文件),我想在我的jupyter笔记本上加载它们(我在VM实例上运行我的代码)。

我尝试了以下

url = "http:\\<localhost>\tree\storage.googleapis.com\<bucket-name>"
data_x = pickle.load(open(url + "\<filename>.p", "rb" ))

但它说没有这样的文件或目录。我还试图在谷歌存储上创建公共链接但没有成功。我设法以这种方式加载.mat文件和.pts文件,但我似乎无法加载.p文件。

此处发布了类似的问题:pickling python objects to google cloud storage

但它已折旧,我没有设法使用答案。

这也是一种有用的资源:https://pypi.python.org/pypi/google-cloud-storage

非常感谢你的帮助!!

1 个答案:

答案 0 :(得分:0)

对于 Python> = 3.5 用户:

您可以做的一件事是使用Dask创作者的gcsfs库,该库的工作原理与open类似,但几乎只是用fs.open代替

示例阅读:

import gcsfs, pickle

fs = gcsfs.GCSFileSystem(project = 'my-google-project')
fs.ls('my-bucket')
>>> ['my-file.txt']
with fs.open('my-bucket/my-file.txt', 'rb') as file:
    print(pickle.load(file))

要写,这是相似的。您只需要用rbwb替换为loaddump