使用Python检查文件或目录是否存在

2025年1月5日 | 阅读 5 分钟

文档是存储在计算机上的数据或详细信息的集合,并有一个特定的标题。它可以是记录、图片、电影、软件或任何其他类型的信息。文档可能带有显示其扩展名的附加信息,例如 .txt、.jpg、.py、.html 等。相反,文件,也称为目录,是文件系统中的一个容器。它充当组织和存储文档和其他目录的手段。让我们探讨一下文档和目录是如何管理的。

Check if a File or Directory Exists using Python

有时,我们希望确认我们的文件系统中是否存在某个文件夹。确认目录或文档是否存在很重要,可以防止现有文件被覆盖,或确保在打开它之前它是可访问的。无论它是字母还是记录,我们都有许多方法可以做到这一点。您可以使用以下方法来检查文件或目录是否存在:

  1. 使用 os.path.exists() 方法
  2. 使用 os.path.isfile() 方法
  3. 使用 os.path.isdir() 方法
  4. 使用 pathlib.Path.exists() 方法

使用 os.path.exists() 方法

Python OS 模块是 Python 的标准模块之一。它提供了与操作系统交互的多种功能。

os.path 组件是 Python 中操作系统模块的一个子集,用于标准路径名。os.path.exists() 函数用于验证特定路径是否存在。此函数有助于确定特定文件或文件夹是否存在。此外,我们还可以使用这些函数来确保该路径表示有效的描述符。

语法

  • 使用目的
    我们使用此方法来检查指定路径是否存在于文件系统中。
  • 参数
    一个类似于文件系统中路径的对象,它可以是字符串或字节对象。
  • 返回值
    如果路径存在,它会返回布尔值 True;否则返回 False。

示例

输出

Path 'C:/Users/hp/Desktop/example.txt' exists: True
Path 'C:/Users/Desktop/demo.txt' exists: False

说明

上面的代码使用 os.path.exists() 函数检查指定路径是否存在。导入 'os' 模块后,我们检查提供的路径是否存在,它会打印 True,否则打印 False。

使用 os.path.isfile() 方法

Python 的 os 模块包含一个名为 isfile() 的函数,用于验证文件是否存在。它检查指定路径是否为现有常规文件。

语法

  • 使用目的
    检查提供的位置是否指向当前的标准文档。
  • 参数
    一个类路径对象,表示文件系统路径。它可以是字符串或字节对象。
  • 返回值
    检查指定路径是否为有效的常规文件,并返回布尔值 True 或 False(如果不是则返回 False)。

示例

输出

Path 'C:/Users/hp/Desktop/example.txt' is a file: True
Path 'C:/Users/Desktop/demo.txt' is a file: False

说明

在上面的代码中,我们使用 `os.path.isfile()` 函数检查了所提供路径的存在性。对于第一个路径:'C:/Users/hp/Desktop/example.txt',它会检查该文件路径是否可用并返回 True。第二个路径 'C:/Users/Desktop/demo.txt' 检查提供的路径是否可用。它将返回 True;否则,将返回 False。

使用 os.path.isdir() 方法

Python 的 os.path.isdir() 方法可确保指定位置位于当前文件夹中。此方法遵循符号链接,这意味着如果提供的路径是检测到目录的符号链接,则输出为 True。

语法

  • 使用目的
    检查指定路径是否指向当前文件夹。
  • 参数
    一个类路径对象,表示文件系统路径。它可以是字符串或字节对象。
  • 返回值
    它返回一个布尔结果。

示例

输出

Path 'C:/Users/hp/Desktop/example.txt' is a directory: False
Path 'C:/Users/hp/Desktop/demo.txt' is a directory: False

说明

上面的代码使用 `os.path.isdir()` 函数检查指定路径是否指向目录。对于第一个路径 'C:/Users/hp/Desktop/example.txt',它会检查它是否指向目录并打印结果。对于第二个路径 'C:/Users/hp/Desktop/demo.txt',它会检查它是否指向目录并打印结果。

使用 pathlib.Path.exists() 方法

Python 的 Pathlib 模块提供了具有适合不同操作系统语义的各种类,这些类描述了文件系统路径。此模块包含在 Python 的标准实用模块中。Pathlib 模块有两种类型的路径类:纯路径和具体路径。从纯路径派生的具体路径提供计算和 I/O 活动,而纯路径仅提供计算操作。

语法

  • 使用目的
    确定指定路径是否在范围内。
  • 参数
    路径:一个类似于文件系统中路径的对象(可以是字符串或字节对象)。
  • 返回值
    该函数将提供一个布尔结果,指示指定位置是否有效(True)或无效(False)。

示例

输出

Path 'C:\Users\hp\Desktop\demo.txt' exists.

说明

此代码使用 `pathlib` 模块中的 `Path` 类来检查指定路径是否存在并指向文件或目录。它从 `pathlib` 模块导入 `Path` 类。它使用指定的路径 'C:\Users\hp\Desktop\demo.txt' 实例化 `Path` 类。它使用 `exists()` 方法检查路径是否指向现有文件或目录,然后打印结果。

另一种方法:使用 try/except 块

在此方法中,我们尝试在 try 块中打开文件(或访问路径)。如果文件或目录存在,则 try 块中的代码将成功执行。如果文件或目录不存在,将引发异常,并在 except 块中捕获它。

示例

输出

The file exists!

说明

上面的代码尝试使用 'with' 语句读取位于 'C:\Users\hp\Desktop\' 的 'demo.txt' 文件。如果文件存在,则打印“文件存在!”。如果找不到(FileNotFoundError),则打印“文件不存在”。

结论

Python 提供了多种技术来确认文件和文件夹的存在。os.path 模块包含 exists()、isfile()、isdir() 等函数,pathlib.Path.exists() 也是如此。此外,pathlib 模块还引入了具有 is_file() 和 is_dir() 等函数的 Path 类。在这些 Python 方法之间进行选择取决于您的编码风格和偏好。无论您使用哪种方法,确认文件的存在都有助于诊断和优化 Python 脚本中的文档组织。