![](/img/trans.png)
[英]Is there a way to get number of objects in a google cloud storage bucket using python?
[英]How to apply regex for Google Cloud Storage Bucket using Python
我正在使用 python 從 Google Cloud Storage 中獲取對象,文件夾中有很多文件(大約 20000 個)。
但我只需要一個特定的文件,即 .json 文件,所有其他文件都是 csv 格式。 現在我使用以下帶有前綴選項的代碼:
from google.cloud import storage
import json
storage_client = storage.Client()
bucket = storage_client.get_bucket(bucket_name)
blobs = list(bucket.list_blobs(prefix="input"))
for blob in blobs:
if '.json' in blob.name:
filename = blob.name
break
這個過程不穩定,因為文件數量會增加,並且需要很多時間來過濾 json 文件。 (文件名是動態的,可以是任何東西)
在從雲存儲中獲取數據時,是否有任何可以像正則表達式過濾器一樣使用的選項?
如果您想根據正則表達式檢查文件名/擴展名,這很容易。
只需在開頭導入“re”模塊
import re
並檢查循環內的正則表達式:
for blob in blobs:
if re.match(r'\.json$',blob.name):
filename = blob.name
break
您可以在 regex101.com 上開發正則表達式,然后再將其刻錄到您的代碼上。
順便說一句 - 我更喜歡用 str.endswith 檢查擴展,它非常快:
for blob in blobs:
if blob.name.endswith('.json'):
filename = blob.name
break
我不會用
if '.json' in filename:
etc...
因為它可能匹配任何其他文件名,如“compressed.json.gz”
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.