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

  • ABC News (Australia)

    ABC News (Au

    9 HAZİRAN 2008
  • kruno j

    kruno j

    6 Mayıs 2007
  • psidot

    psidot

    2 Kasım 2006