我想删除文件 filename
如果它存在。这样说合适吗
if os.path.exists(filename):
os.remove(filename)
有没有更好的办法?单线方式?
原文由 Scott C Wilson 发布,翻译遵循 CC BY-SA 4.0 许可协议
我想删除文件 filename
如果它存在。这样说合适吗
if os.path.exists(filename):
os.remove(filename)
有没有更好的办法?单线方式?
原文由 Scott C Wilson 发布,翻译遵循 CC BY-SA 4.0 许可协议
我更喜欢抑制异常而不是检查文件是否存在,以避免 TOCTTOU 错误。 Matt 的回答就是一个很好的例子,但我们可以在 Python 3 下使用 contextlib.suppress()
稍微简化它:
import contextlib
with contextlib.suppress(FileNotFoundError):
os.remove(filename)
If filename
is a pathlib.Path
object instead of a string, we can call its .unlink()
method instead of using os.remove()
.根据我的经验,Path 对象在文件系统操作方面比字符串更有用。
由于此答案中的所有内容都是 Python 3 独有的,因此它提供了另一个升级的理由。
原文由 Kevin 发布,翻译遵循 CC BY-SA 3.0 许可协议
2 回答5.1k 阅读✓ 已解决
2 回答1.1k 阅读✓ 已解决
4 回答1k 阅读✓ 已解决
3 回答1.1k 阅读✓ 已解决
3 回答1.2k 阅读✓ 已解决
1 回答1.7k 阅读✓ 已解决
1 回答1.2k 阅读✓ 已解决
一种更pythonic的方式是:
虽然这需要更多行并且看起来非常难看,但它避免了对
os.path.exists()
的不必要调用,并遵循了过度使用异常的 python 约定。编写一个函数来为您执行此操作可能是值得的: