ファイル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