如何在没有异常的情况下检查文件是否存在?

38 浏览
0 Comments

如何在没有异常的情况下检查文件是否存在?

如何检查文件是否存在,而不使用try语句?

admin 更改状态以发布 2023年5月20日
0
0 Comments

使用os.path.exists来检查文件和目录:

import os.path
os.path.exists(file_path)

使用os.path.isfile仅检查文件(注意:遵循符号链接):

os.path.isfile(file_path)

0
0 Comments

如果您正在检查的原因是为了执行类似于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

0