我必须获取一个文件,并每天根据输入文件运行代码。此文件位于Azure存储的容器中,每当上载文件时,都需要自动运行代码。
文件路径如下:
path = f"adls:/{container_name}/{folder}/" + str(year) + "/" + str(month) + "/" + str(day)
file_name = "data_"+str(year)+"_"+str(month)+"_"+str(day)+".csv"
由于格式的原因,文件名每天都会更改。上载此文件的文件夹也会每天更改。
这就是我迄今为止所做的:
def find_file(current_date, path):
current_date = datetime.datetime.now()
year = current_time.year
month = current_time.month
day = current_time.day
path = f"adls:/{container_name}/{folder}/" + str(year) + "/" + str(month) + "/" + str(day)
file = "data_"+str(year)+"_"+str(month)+"_"+str(day)+".csv"
if os.path.isfile(path) and os.access(path, os.R_OK):
print("File exists and is readable")
else:
print("Either the file is missing or not readable")
sys.exit()
return file
find_file(current_date, path)
我正在检查给定路径中是否存在该文件。如果有一个具有给定名称的文件,代码应该运行并读取该文件,如果没有,代码应该中止。
上面的代码显然不正确。我是Python函数的新手。有人能纠正我哪里错了吗?
如果您想确定Azure存储上是否存在文件,请使用exists
方法。你可以参考这里。
from azure.storage.blob import BlobServiceClient
blob_service_client = BlobServiceClient.from_connection_string("connection_string")
blob_client = blob_service_client.get_blob_client(container="container_name", blob="my_blob")
isExist = blob_client.exists()
print(isExist)
if isExist:
# download blob file
stream = blob_client.download_blob()
print("File exists and is readable")
else:
print("Either the file is missing or not readable")