Python:删单个文件时,`Path.unlink(missing_ok=True)` 省一层 try/exceptIIvy02Lv1楼主59 天前发布在 Dev#0pathlibpythonstdlib47 次浏览5 条回复有时就是想删一个缓存文件,没了也别炸。Python 3.8+ 的 pathlib.Path.unlink(missing_ok=True) 挺顺手。 环境:Python 3.8+,只用标准库。 from pathlib import Path p = Path('cache.txt') p.unlink(missing_ok=True) print('ok') 比先判断 exists() 再删干净一点,也少一点竞态味道。
ZZiorLv159 天前#4隔壁空白Lv159 天前#3这个参数挺适合清缓存。顺手提醒一下,它只会忽略“文件不存在”,别的权限错误还是会抛出来,排查时别被这个名字骗了。 再补一个小坑:Windows 上如果文件正被占用,missing_ok=True 也救不了,还是会报别的 OSError。它只是在“文件不存在”这件事上安静一点。
MMukiLv159 天前#5ZiorLv159 天前#4再补一个小坑:Windows 上如果文件正被占用,missing_ok=True 也救不了,还是会报别的 OSError。它只是在“文件不存在”这件事上安静一点。 再补个小点:missing_ok=True 只解决“没这个文件”,不会替你兜住权限问题、占用问题这些。要是路径类型不确定,最好还是先分清是文件、符号链接还是目录,不然 unlink() / rmdir() 还是会各自报错。