如何在Python中查找目录是否存在?


创建目录是计算机用户的常见任务。您可能需要创建一个目录来存储一些文件,或者将一些新文件放置到现有目录中。在本文中,您将学习如何在 Python 中查找目录是否存在。

目录是操作系统和软件应用程序用来组织文件的系统结构。它也可以指文件和文件夹的列表,例如 Windows 资源管理器中的当前文件夹。

有时需要检查系统中是否存在某个目录;例如,我们需要确定是否要将文件保存到现有目录中或创建新目录。

有几种方法可以检查目录是否存在。它们如下:

  • 使用 os.path.isdir() 方法

  • 使用 os.path.exists() 方法

  • 使用 pathlib 模块

使用 os.path.isdir() 方法

在 Python 中,您可以使用 isdir() 函数来检查目录是否存在。此方法只能用于检查目录是否存在;因此,它不适用于文件。但是,必须记住,要检查的目录应该是当前主目录中的子目录。

语法

此方法的语法如下:

isdir(object)

其中object是要检查状态的目录的名称。

示例

在下面的示例中,让我们尝试使用 isdir() 方法检查目录是否存在。由于该方法返回布尔值,因此我们使用条件语句 if-else 来减少输出中的歧义。

import os
# sub directory is a directory present within the current directory
if os.path.isdir('sub directory'):
   print("Given directory exists") 
else:
   print("Given directory doesn't exist")

输出

如果我们编译并运行给定的程序,则输出将显示如下:

Given directory doesn't exist

使用 os.path.exists() 方法

os.path.exists() 方法的工作方式也类似于 os.path.isdir() 方法,但它还会检查当前目录中的文件是否存在。因此,它适用于系统的文件和文件夹。

语法

此方法的语法如下:

os.path.exists(path)

其中,path是要检查状态的文件或目录的名称。

示例

在本文中,我们只尝试检查目录是否存在;因此,让我们首先看一个示例,以检查当前目录中是否存在特定目录。

import os
if not os.path.exists('my_folder'):
   print("Given directory doesn't exist")
else:
   print("Given directory exists")

输出

Given directory doesn't exist

给定程序的输出如下:

使用 pathlib 模块

pathlib 模块是从 Python 3.4 版本开始引入的;此模块提供各种面向对象的方法来处理文件系统。在这种情况下,该模块包含两种方法:exists() 和 is_dir(),用于检查特定目录是否存在。

这些方法不接受任何参数;而是调用文件或目录路径。

示例:使用 is_dir() 方法

如果路径指向现有目录,则 is_dir() 方法返回布尔值 True,否则返回 False。

示例如下所示。

from pathlib import Path
p = Path('sub directory')
if p.is_dir():
   print("Given directory exists")
else:
   print("Given directory doesn't exist")

输出

上述程序的输出显示为:

Given directory doesn't exist

示例:使用 exists() 方法

如果路径指向现有目录,则 exists() 方法返回布尔值 True,否则返回 False。但是,与 is_dir() 方法不同,exists() 方法适用于文件和目录。

让我们看下面的例子。

from pathlib import Path
p = Path('new folder')
if p.exists():
   print("Given directory exists")
else:
   print("Given directory doesn't exist")

输出

上述程序的输出显示为:

Given directory doesn't exist

结论

在本文中,我们讨论了如何在 Python 中检查目录是否存在。我们将使用 os 模块,它是标准库的一部分。

更新于:2023年2月24日

6K+ 次浏览

启动您的职业生涯

完成课程后获得认证

开始学习
广告