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

  • Artorius FullPower

    Artorius Ful

    29 Temmuz 2007
  • Chriselle Lim

    Chriselle Li

    26 Ocak 2008
  • FUNKER530 - Veteran Community & Combat Footage

    FUNKER530 -

    25 Ocak 2007