如何检查文件是否存在无异常?

新手上路,请多包涵

如何在不使用 try 语句的情况下检查文件是否存在?

原文由 spence91 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 414
1 个回答

如果您检查的原因是您可以执行类似 if file_exists: open_it() 之类的操作,那么在尝试打开它时使用 try 会更安全。检查然后打开文件有被删除或移动的风险,或者在您检查和尝试打开它之间发生某些事情。

如果您不打算立即打开文件,您可以使用 os.path.isfile

返回 True 如果路径是现有的常规文件。这遵循符号链接,因此 islink()isfile() 对于同一路径都可以为真。

 import os.path
os.path.isfile(fname)

如果你需要确定它是一个文件。

从 Python 3.4 开始, pathlib 模块 提供了一种面向对象的方法(反向移植到 Python 2.7 中的 pathlib2 ):

 from pathlib import Path

my_file = Path("/path/to/file")
if my_file.is_file():
    # file exists

要检查目录,请执行以下操作:

 if my_file.is_dir():
    # directory exists

要检查 Path 对象是否独立于文件或目录而存在,请使用 exists()

 if my_file.exists():
    # path exists

您还可以在 try 块中使用 resolve(strict=True)

 try:
    my_abs_path = my_file.resolve(strict=True)
except FileNotFoundError:
    # doesn't exist
else:
    # exists

原文由 rslite 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题