gpt4 book ai didi

python - 如何使用python下载谷歌云平台上文件夹内的文件?

转载 作者:行者123 更新时间:2023-12-01 02:07:10 29 4
gpt4 key购买 nike

from google.cloud import storage
client = storage.Client()
bucket = client.get_bucket([bucket_name])
blob = bucket.get_blob([path to the .txt file])
blob.download_to_filename([local path to the downloaded .txt file])

如何调整我的 python 代码以添加类似 for filename in os.listdir(path): 的内容,以便仅将某个文件夹中的所有文件复制到本地

最佳答案

首先,我认为值得强调的是,Google Cloud Storage 使用平面 namespace ,实际上“目录”的概念并不存在,因为 GCS 中没有存储分层文件架构。有关 how directories work 的更多信息可以在文档中找到,因此如果您对此主题感兴趣,那么值得一读。

话虽这么说,您可以使用我在下面分享的脚本,以便将 GCS 中“文件夹”中的所有文件下载到本地环境中的同一文件夹中。基本上,您自己的代码中唯一重要的添加部分是 bucket.list_blobs() method正在调用,prefix 字段指向文件夹名称,以便查找仅与其名称中的文件夹模式匹配的 blob。然后,您迭代它们,丢弃目录 blob 本身(在 GCS 中只是一个名称以 "/" 结尾的 blob),然后下载文件。

from google.cloud import storage
import os

# Instantiate a CGS client
client=storage.Client()
bucket_name= "<YOUR_BUCKET_NAME>"

# The "folder" where the files you want to download are
folder="<YOUR_FOLDER_NAME>/"

# Create this folder locally
if not os.path.exists(folder):
os.makedirs(folder)

# Retrieve all blobs with a prefix matching the folder
bucket=client.get_bucket(bucket_name)
blobs=list(bucket.list_blobs(prefix=folder))
for blob in blobs:
if(not blob.name.endswith("/")):
blob.download_to_filename(blob.name)

关于python - 如何使用python下载谷歌云平台上文件夹内的文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48944923/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com