我想删除文件文件名,如果它存在。这样说合适吗
if os.path.exists(filename):
os.remove(filename)
有没有更好的办法?一条线路?
我想删除文件文件名,如果它存在。这样说合适吗
if os.path.exists(filename):
os.remove(filename)
有没有更好的办法?一条线路?
当前回答
从Python 3.3开始,你可以使用FileNotFoundError,它比公认的版本更正确,因为它没有忽略其他可能的错误。
try:
os.remove(filename)
except FileNotFoundError:
pass
其他回答
按照Andy Jones回答的精神,一个真正的三元运算怎么样:
os.remove(fn) if os.path.exists(fn) else None
另一种了解文件(或多个文件)是否存在并删除它的方法是使用模块glob。
from glob import glob
import os
for filename in glob("*.csv"):
os.remove(filename)
Glob找到所有可以使用*nix通配符选择模式的文件,并循环该列表。
在Python 3.4或更高版本中,Python的方式是:
import os
from contextlib import suppress
with suppress(OSError):
os.remove(filename)
os.path.exists对文件夹和文件都返回True。考虑使用os.path.isfile来检查文件是否存在。
马特的答案适合老的蟒蛇,凯文的答案适合新蟒蛇。
如果你不希望复制silentremove的函数,这个函数将在path.py中作为remove_p公开:
from path import Path
Path(filename).remove_p()