使用 Python 检查目录是否包含文件


Python 是一种用途广泛的编程语言,广泛用于各种目的,包括文件和目录操作。文件和目录操作中最常见的任务之一是检查目录是否包含文件。在本文中,我们将讨论如何使用 Python 检查目录是否包含文件。

在深入了解实现之前,让我们先了解目录和文件的概念。

  • 目录是一个包含文件和其他目录的文件夹。它用于以分层方式组织文件和目录。换句话说,目录可以包含其他目录,这些目录称为子目录

  • 文件是存储在计算机上的数据集合。它可以是文本文件、图像文件、音频文件或任何其他类型的文件。

现在我们已经对目录和文件有了基本的了解,让我们讨论如何使用 Python 检查目录是否包含文件。

方法 1:使用 os.listdir() 方法

Python 中的os 模块提供了一种与文件系统交互的方式。os.listdir() 方法用于获取目录中所有文件和目录的列表。

以下是如何使用 os.listdir() 方法检查目录是否包含文件:

示例

import os
dir_path = r'C:\Users\Leekha\Desktop'
if len(os.listdir(dir_path)) == 0:
   print("Directory is empty")
else:
   print("Directory contains files")

输出

在实现上述代码行后,您将获得以下输出:

Directory contains files

让我们看看以上代码是否可以检测空目录

我们在桌面上创建了一个空文件夹,以检查上述代码是否可以检测到它。

import os
dir_path = r'C:\Users\Leekha\Desktop\Empty'
if len(os.listdir(dir_path)) == 0:
   print("Directory is empty")
else:
   print("Directory contains files")

输出

在实现上述代码行后,您将获得以下输出:

Directory is empty

在上述代码中,我们首先导入 os 模块。然后我们在 dir_path 变量中定义要检查的目录的路径。

然后我们使用 os.listdir() 方法获取目录中所有文件和目录的列表。我们使用 len() 函数检查列表的长度。如果列表的长度为零,则表示目录为空。如果列表的长度大于零,则表示目录包含文件。

方法 2:使用 glob.glob() 方法

Python 中的 glob 模块提供了一种搜索与特定模式匹配的文件的方式。glob.glob() 方法用于获取与特定模式匹配的所有文件的列表。

示例

以下是如何使用 glob.glob() 方法检查目录是否包含文件:

import glob
dir_path = r'C:\Users\Leekha\Desktop'
files = glob.glob(dir_path + '/*')
if len(files) == 0:
   print("Directory is empty")
else:
   print("Directory contains files")

输出

在实现上述代码行后,您将获得以下输出:

Directory contains files

让我们看看以上代码是否可以检测空目录

我们在桌面上创建了一个空文件夹,以检查上述代码是否可以检测到它。

import glob
dir_path = r'C:\Users\Leekha\Desktop\Empty'
files = glob.glob(dir_path + '/*')
if len(files) == 0:
   print("Directory is empty")
else:
   print("Directory contains files")

输出

在实现上述代码行后,您将获得以下输出:

Directory is empty

在上述代码中,我们首先导入 glob 模块。然后我们在 dir_path 变量中定义要检查的目录的路径。

然后我们使用 glob.glob() 方法获取目录中与方法参数中定义的模式匹配的所有文件的列表。在本例中,我们使用模式 '/*' 来匹配目录中的所有文件。

我们使用 len() 函数检查列表的长度。如果列表的长度为零,则表示目录为空。如果列表的长度大于零,则表示目录包含文件。

方法 3:使用 os.scandir() 方法

os.scandir() 方法用于获取目录中所有文件和目录的迭代器。此方法比 os.listdir() 方法更有效,因为它返回迭代器而不是列表。

示例

以下是如何使用 os.scandir() 方法检查目录是否包含文件:

import os
dir_path = r'C:\Users\Leekha\Desktop'
if not any(os.scandir(dir_path)):
   print("Directory is empty")
else:
   print("Directory contains files")

输出

在实现上述代码行后,您将获得以下输出:

Directory contains files

让我们看看以上代码是否可以检测空目录

我们在桌面上创建了一个空文件夹,以检查上述代码是否可以检测到它。

示例

import os
dir_path = r'C:\Users\Leekha\Desktop\Empty'
if not any(os.scandir(dir_path)):
   print("Directory is empty")
else:
   print("Directory contains files")

输出

在实现上述代码行后,您将获得以下输出:

Directory is empty

在上述代码中,我们首先导入 os 模块。然后我们在 dir_path 变量中定义要检查的目录的路径。

我们使用 os.scandir() 方法获取目录中所有文件和目录的迭代器。我们使用 any() 函数检查迭代器中是否存在任何文件。如果迭代器中没有文件,则表示目录为空。如果迭代器中存在文件,则表示目录包含文件。

方法 4:使用 os.path.isdir() 方法

Python 中的 os.path 模块提供了一种执行路径上的常见操作的方式。os.path.isdir() 方法用于检查给定路径是否为目录。

示例

以下是如何使用 os.path.isdir() 方法检查目录是否包含文件:

import os
dir_path = r'C:\Users\Leekha\Desktop'
if os.path.isdir(dir_path) and len(os.listdir(dir_path)) > 0:
   print("Directory contains files")
else:
   print("Directory is empty")

输出

在实现上述代码行后,您将获得以下输出:

Directory contains files

让我们看看以上代码是否可以检测空目录

我们在桌面上创建了一个空文件夹,以检查上述代码是否可以检测到它。

import os
dir_path = r'C:\Users\Leekha\Desktop\Empty'
if os.path.isdir(dir_path) and len(os.listdir(dir_path)) > 0:
   print("Directory contains files")
else:
   print("Directory is empty")

输出

在实现上述代码行后,您将获得以下输出:

Directory is empty

在上述代码中,我们首先导入 os 模块。然后我们在 dir_path 变量中定义要检查的目录的路径。

我们使用os.path.isdir()方法检查给定路径是否为目录。如果路径为目录,我们使用os.listdir()方法获取目录中所有文件和目录的列表。我们使用len()函数检查列表的长度。

如果列表的长度大于零,则表示目录包含文件。如果列表的长度为零,则表示目录为空。

结论

在本教程中,我们讨论了如何使用 Python 检查目录是否包含文件。我们介绍了四种不同的方法来完成此任务。

第一种方法使用os.listdir()方法,第二种方法使用glob.glob()方法,第三种方法使用os.scandir()方法,第四种方法使用os.path.isdir()方法。

所有这些方法都以自己的方式有效,方法的选择取决于具体的用例。

更新于: 2024年2月20日

511 次浏览

开启您的 职业生涯

通过完成课程获得认证

开始学习
广告