GCS - Read a text file from Google Cloud Storage directly into python

十年热恋 提交于 2020-01-10 01:16:03

问题


I feel kind of stupid right now. I have been reading numerous documentations and stackoverflow questions but I can't get it right.

I have a file on Google Cloud Storage. It is in a bucket 'test_bucket'. Inside this bucket there is a folder, 'temp_files_folder', which contains two files, one .txt file named 'test.txt' and one .csv file named 'test.csv'. The two files are simply because I try using both but the result is the same either way.

The content in the files is

hej
san

and I am hoping to read it into python the same way I would do on a local with

textfile = open("/file_path/test.txt", 'r')
times = textfile.read().splitlines()
textfile.close()
print(times)

which gives

['hej', 'san']

I have tried using

from google.cloud import storage

client = storage.Client()

bucket = client.get_bucket('test_bucket')

blob = bucket.get_blob('temp_files_folder/test.txt')

print(blob.download_as_string)

but it gives the output

<bound method Blob.download_as_string of <Blob: test_bucket, temp_files_folder/test.txt>>

How can I get the actual string(s) in the file?


回答1:


download_as_string is a method, you need to call it.

print(blob.download_as_string())

More likely, you want to assign it to a variable so that you download it once and can then print it and do whatever else you want with it:

downloaded_blob = blob.download_as_string()
print(downloaded_blob)
do_something_else(downloaded_blob)


来源:https://stackoverflow.com/questions/48279061/gcs-read-a-text-file-from-google-cloud-storage-directly-into-python

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!