存在しない可能性のあるファイルを削除する最もPython的な方法 質問する

存在しない可能性のあるファイルを削除する最もPython的な方法 質問する

ファイルfilenameが存在する場合は削除したいのですが、次のように言うのが適切でしょうか?

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

もっと良い方法はありますか? 一行でできる方法はありますか?

ベストアンサー1

より Python 的な方法は次のとおりです。

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

これにはさらに多くの行が必要になり、見た目も非常に醜くなりますが、不必要な呼び出しを回避しos.path.exists()、例外を過剰に使用するという Python の慣例に従います。

これを実行する関数を記述する価値があるかもしれません:

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 occurred

おすすめ記事