Dosyayı işlemenin temiz yolu istisna bulunamadı
ARKA FON
Aws s3'ten dosyayı önbelleğe aldığım bir işlevim var. Ona s3 üzerindeki yolu ve ayrıca önbelleğe alınan dosyanın yaşamasını istediğim yerel yolu sağlıyorum. Bazen dosya s3'te yoksa 404 hatası döndürür. Bu mantıklı ama bunu zarafetle halletmek istiyorum. Yapmak istediğim şey, önbelleğe almaya çalıştığım dosya yoksa get_overview_stream işlevimin None döndürmesini istiyorum.
KODU
def get_overview_stream(*, environment, proxy_key):
s3_overview_file_path = f"s3://{FOO_TRACK_BUCKET}/{environment}"
overview_file = f"{proxy_key}.csv"
local_path = cache_directory(environment)
try:
cache.cache_file(s3_overview_file_path, local_path, overview_file)
overview_file_cache = local_path / f"{proxy_key}.csv"
return overview_file_cache.open("r")
except botocore.exceptions.ClientError as e:
if e.response["Error"]["Code"] == "404":
return None
else:
raise
Denenen Çözüm Sorunu
Python'da çok yeniyim, bu yüzden bu istisnayı halletmenin en iyi yolu olup olmadığından ve daha temiz bir yol olup olmadığından emin değilim. Öyleyse geri bildirim almak isterim.
Yanıtlar
Dosyayı işlevinizde açmamanızı, bunun yerine yolu döndürmenizi veya None
arayanın bir with
ifade kullanarak dosyayı açmasını öneririm .