SORU
31 Mayıs 2012, PERŞEMBE


En çok yolu var olmayan bir dosyayı silmek için pythonic

Eğer varsa dosya filename silmek istiyorum. Söylemek uygun olur

if os.path.exists(filename):
    os.remove(filename)

Daha iyi bir yolu var mı? Tek satırlık bir yolu?

CEVAP
31 Mayıs 2012, PERŞEMBE


Daha pythonic bir yol olacaktır:

try:
    os.remove(filename)
except OSError:
    pass

Bu bile daha fazla satır alır ve çok çirkin görünüyor, ancak os.path.exists() gereksiz çağrı önler ve fazla kullanmak özel durumlar python kuralı izler.

Sizin için bunu yapmak için bir işlevi yazmak için yararlı olabilir:

import os, errno

def silentremove(filename):
    try:
        os.remove(filename)
    except OSError as e: # this would be "except OSError, e:" before Python 2.6
        if e.errno != errno.ENOENT: # errno.ENOENT = no such file or directory
            raise # re-raise exception if a different error occured

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Mary Jane Tauyan

    Mary Jane Ta

    20 AĞUSTOS 2009
  • Miles Fisher

    Miles Fisher

    8 NİSAN 2009
  • The Slow Mo Guys

    The Slow Mo

    15 AĞUSTOS 2010