我如何使用 python 遍历 Google Cloud Storage 上子目录中的所有文件名?
How would I loop through all the file names in a subdirectory on Google Cloud Storage with python?
假设我在 Google 云存储上有一些 bucket/subdirectory,这个存储桶的地址是:
gs://test-monkeys-example/training_data/cats
在这个cats子目录下我有一堆猫的图片,都是jpg格式。我如何在 python 中循环遍历 cats 子目录并打印出其中所有文件的名称?
类似于:
for x in directory('gs://test-monkeys-example/training_data/cats'):
print(x)
显然目录('gs://test-monkeys-example/training_data/cats')不是如何做到这一点而只是伪代码-我该怎么做?!
使用存储模块:
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
class:
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 table 个键。请注意,这是一个完整的 GCS 路径,以 gs://
.
开头
Google Cloud Storage 支持仅列出以特定前缀开头的对象。您可以像这样从客户端库访问它:
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
假设我在 Google 云存储上有一些 bucket/subdirectory,这个存储桶的地址是:
gs://test-monkeys-example/training_data/cats
在这个cats子目录下我有一堆猫的图片,都是jpg格式。我如何在 python 中循环遍历 cats 子目录并打印出其中所有文件的名称?
类似于:
for x in directory('gs://test-monkeys-example/training_data/cats'):
print(x)
显然目录('gs://test-monkeys-example/training_data/cats')不是如何做到这一点而只是伪代码-我该怎么做?!
使用存储模块:
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
class:
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 table 个键。请注意,这是一个完整的 GCS 路径,以 gs://
.
Google Cloud Storage 支持仅列出以特定前缀开头的对象。您可以像这样从客户端库访问它:
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