Ich versuche, einen Python-Code zu schreiben, der nach einer bestimmten Datei in einem Ordner des Cloud-Speicher-Buckets sucht, und wenn die Datei existiert, muss sie in die Schleife eintreten. Andernfalls verlassen Sie die Schleife. Dateiname, den ich überprüfen möchte, ist eine tägliche inkrementelle Datei, die mit "DL_Ticket_" beginnt. Der tatsächliche Dateiname lautet wie folgt: DL_Ticket_merged_20220406201501.csv Der Dateipfad lautet wie folgt: gs://standard/inbound/DL_Ticket_merged_20220406201501.csv Für diese Funktionalität habe ich den unten gezeigten Code geschrieben.
from google.cloud import storage
from googleapiclient.discovery import build
import time
def df_load_function(file, context):
name = 'DL_Ticket_'
storage_client = storage.Client()
bucket_name = 'standard'
bucket = storage_client.bucket(bucket_name)
stats = storage.Blob(bucket=bucket, name="inbound/DL_Ticket_").exists(storage_client)
print(stats)
if stats == True:
#my code
else:
exit()
Mit dem obigen Code erhalte ich immer False, obwohl die Datei im Bucket vorhanden ist. Ich implementiere diesen Code in Cloud Function der GCP. Keine Fehler beim Bereitstellen des Codes. Kann mir bitte jemand dabei helfen, dies zu erreichen.
Lösung des Problems
import fnmatch
def test():
myVar = next(walk('inbound/'), (None, None, []))[2]
filtered = fnmatch.filter(myVar, 'DL_Ticket_?')
print(filtered)
test()
Wo also "DL_Ticket_?" steht, wird das "?" ist Ihr Platzhalterselektor. Sie müssen meinen Code ändern, um den Dateityp am Ende nach dem "?"
Keine Kommentare:
Kommentar veröffentlichen