Как бы я перебрал все имена файлов в подкаталоге в Google Cloud Storage с python?
Скажем, у меня есть некоторый сегмент / подкаталог в Google Cloud Storage, и адрес этого сегмента:
gs://test-monkeys-example/training_data/cats
В этом подкаталоге кошек у меня есть куча изображений кошек, все из которых являются jpgs. Как мне в python перебрать подкаталог cats и распечатать все имена файлов в нем?
Что-то вроде:
for x in directory('gs://test-monkeys-example/training_data/cats'):
print(x)
Очевидно, что каталог ('gs://test-monkeys-example/training_data/cats') - это не то, как это сделать, а просто psuedocode, как мне это сделать?!
2 ответа
Используйте модуль хранения:
import google.datalab.storage as storage
cats = [o.key for o in storage.Bucket('test-monkeys-example').objects()
if o.key.startswith('training_data/cats')]
Это дает вам список таких кошек.
В качестве альтернативы, вы можете использовать Objects
учебный класс:
cats = [o.key for o in storage.Objects('test-monkeys-example', '', '')
if o.key.startswith('training_data/cats')]
Если вам не нужен список, помещенный в переменную, вы можете использовать %gcs
магия, проще
%gcs list -o gs://test-monkeys-example/training_data/cats/*
Это печатает HTML-таблицу ключей. Обратите внимание, что это полный путь GCS, начиная с gs://
,
Облачное хранилище Google поддерживает перечисление только тех объектов, которые начинаются с определенного префикса. Вы можете получить к нему доступ из клиентской библиотеки следующим образом:
from google.cloud import storage
client = storage.Client()
bucket = client.bucket('mybucket')
for blob in bucket.list_blobs(prefix='training_data/cats'):
print blob.name