如果您检查的原因是您可以执行类似 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 许可协议
如果您检查的原因是您可以执行类似
if file_exists: open_it()
之类的操作,那么在尝试打开它时使用try
会更安全。检查然后打开文件有被删除或移动的风险,或者在您检查和尝试打开它之间发生某些事情。如果您不打算立即打开文件,您可以使用
os.path.isfile
如果你需要确定它是一个文件。
从 Python 3.4 开始,
pathlib
模块 提供了一种面向对象的方法(反向移植到 Python 2.7 中的pathlib2
):要检查目录,请执行以下操作:
要检查
Path
对象是否独立于文件或目录而存在,请使用exists()
:您还可以在
try
块中使用resolve(strict=True)
: