如何检查文件是否存在,没有异常?

2022-09-05 00:42:22

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


答案 1

如果你检查的原因是你可以做类似的事情,那么使用周围的尝试打开它更安全。检查然后打开文件可能会被删除或移动,或者在检查和尝试打开文件之间出现其他风险。if file_exists: open_it()try

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

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

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

要检查对象是否存在,而与它是文件还是目录无关,请使用:Pathexists()

if my_file.exists():
    # path exists

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

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

答案 2

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

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

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

os.path.isfile(file_path)