web-dev-qa-db-fra.com

GCS - Lisez un fichier texte de Google Cloud Storage directement dans python

Je me sens un peu stupide en ce moment. J'ai lu de nombreuses documentations et questions de stackoverflow mais je n'arrive pas à comprendre.

J'ai un fichier sur Google Cloud Storage. C'est dans un compartiment 'test_bucket'. À l'intérieur de ce compartiment, il y a un dossier, 'temp_files_folder', qui contient deux fichiers, un fichier .txt nommé 'test.txt' et un fichier .csv nommé 'test.csv'. Les deux fichiers sont simplement parce que j'essaie d'utiliser les deux, mais le résultat est le même dans les deux cas.

Le contenu des fichiers est

hej
san

et j'espère le lire dans python de la même manière que je le ferais sur un local avec

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

qui donne

['hej', 'san']

J'ai essayé d'utiliser

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)

mais ça donne la sortie

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

Comment puis-je obtenir la ou les chaînes réelles dans le fichier?

11
digestivee

download_as_string est une méthode, vous devez l'appeler.

print(blob.download_as_string())

Plus probablement, vous voulez l'attribuer à une variable afin de la télécharger une fois, puis de l'imprimer et de faire tout ce que vous voulez avec elle:

downloaded_blob = blob.download_as_string()
print(downloaded_blob)
do_something_else(downloaded_blob)
17
Daniel Roseman