如何在没有异常的情况下检查文件是否存在?
使用os.path.exists
来检查文件和目录:
import os.path os.path.exists(file_path)
使用os.path.isfile
仅检查文件(注意:遵循符号链接):
os.path.isfile(file_path)
如果您正在检查的原因是为了执行类似于if file_exists: open_it()
的操作,更安全的方法是在尝试打开它的周围使用try
。检查然后打开会导致在您检查和尝试打开之间文件被删除、移动或其他原因而导致出错。
如果您不打算立即打开文件,则可以使用os.path.isfile
。
如果path是现有的普通文件,则返回
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