Dosyayı işlemenin temiz yolu istisna bulunamadı

Aug 16 2020

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

1 D.SM Aug 18 2020 at 10:51

Dosyayı işlevinizde açmamanızı, bunun yerine yolu döndürmenizi veya Nonearayanın bir withifade kullanarak dosyayı açmasını öneririm .