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

问题描述

如果您检查的原因是为了您可以执行类似的操作if file_exists: open_it(),则使用 atry来尝试打开它会更安全。检查然后打开可能会导致文件删除或移动,或者在您检查和尝试打开它之间发生某些事情。

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

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

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

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

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

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

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

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

解决方法

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

相关文章

猜你在找的编程问答相关文章

怎样才能让 Git“忘记”一个被跟踪但现在在 .gitignore 中的文件?
Python 中的metaclasses是什么?
如何在 Linux 上查找包含特定文本的所有文件?
如何从异步调用返回响应
如何在一个表达式中合并两个字典(取字典的并集)?
HTTP 中的 POST 和 PUT 有什么区别?
使用 Git 将最近的提交移动到新分支
在 JavaScript 比较中应该使用哪个等于运算符 (== vs ===)?