如何在 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 模块,它是标准库的一部分。