Python 如何查找目录是否存在
目录创建是计算机用户的常见任务。您可能需要创建一个目录来存储一些文件,或者将一些新文件放在现有目录中。在本文中,您将了解如何在Python中查找目录是否已存在。
目录是操作系统和软件应用程序用于组织文件的文件系统结构。它还可以指代文件和文件夹的列表,例如Windows资源管理器中的当前文件夹。
有时需要检查系统中是否存在某个特定目录;例如,我们需要决定是否要将文件保存在已存在的目录中还是创建一个新的目录。
有多种方法可以检查目录是否存在。它们如下所示-
- 使用os.path.isdir()方法
-
使用os.path.exists()方法
-
使用pathlib模块
使用os.path.isdir()方法
在Python中,您可以使用isdir()函数来检查目录是否存在。此方法仅适用于检查目录是否存在,因此不适用于文件。但是,必须记住要检查的目录应该是当前主目录下的子目录。
语法
此方法的语法如下
isdir(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)
其中, 路径 是需要检查状态的文件或目录的名称。
示例
在本文中,我们只是想检查目录是否存在;因此,让我们首先看一个示例,以检查当前目录中是否存在特定目录。
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模块。