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

  • campos9896

    campos9896

    24 Mart 2012
  • Jonah Penna

    Jonah Penna

    11 EYLÜL 2005
  • super1988guy

    super1988guy

    9 Aralık 2007