如何使用Python获取子文件夹中的文件名,而不使用GCS中的路由?

如何使用Python获取子文件夹中的文件名,而不使用GCS中的路由?,python,google-cloud-functions,google-cloud-storage,Python,Google Cloud Functions,Google Cloud Storage,我有一个有很多子文件夹的bucket,我使用这个函数来获取blob,但是我需要获取文件名,这怎么办 def list_blobs_with_prefix(bucket_name, prefix,delimiter=None): storage_client = storage.Client() blobs = storage_client.list_blobs(bucket_name, prefix=prefix,delimiter=delimiter) return b

我有一个有很多子文件夹的bucket,我使用这个函数来获取blob,但是我需要获取文件名,这怎么办

def list_blobs_with_prefix(bucket_name, prefix,delimiter=None):
    storage_client = storage.Client()
    blobs = storage_client.list_blobs(bucket_name, prefix=prefix,delimiter=delimiter)
    return blobs

我需要获取不带文件夹路由的文件名,若要在另一个函数中使用它,该函数将尝试下载文件并将其放入临时文件夹。

此脚本将为您提供一个列表,其中仅包括存储桶中的文件名,而不包括文件夹/子文件夹/路由

from google.cloud import storage


client = storage.Client()
BUCKET_NAME = 'thehotbucket'
bucket = client.get_bucket(BUCKET_NAME)

blobs = bucket.list_blobs()

for blob in blobs:
    try:
        num = blob.name.count('/')
        string = blob.name.split('/')[num]
        if string != "":
            print(string)
    except:
        print("An exception occurred")

你有什么问题?痛点?问题是通过blob.name我可以得到文件夹名和文件名。我只需要获取文件名。@Kolban-我猜是因为这段代码打印的是指定文件夹中的所有对象,而不是对象。第一次编写代码时,
前缀的功能不明显。blob.name将返回子文件夹/文件名。我需要返回文件名,路径类似于bucket/folder/file。现在我想我理解了你的问题。代替建议的打印,请尝试以下操作:
Print(blob.name.rindex('/')+1:)
这应该可以,但我不在城市,现在没有pc可以尝试,但请告诉我这是否适合您。这将返回路径的一个字符。:)通过使用blob.name.split(“/”)可以分离文件夹和文件名。