欢迎访问宙启技术站
智能推送

利用glob2和glob()在Python中搜索具有特定扩展名的文件

发布时间:2023-12-24 14:37:46

在Python中,可以使用glob2和glob()来搜索具有特定扩展名的文件。这两个方法都属于Python的内置模块glob。

首先,需要导入glob和glob2模块:

import glob
import glob2

接下来,可以使用如下的语法来进行文件搜索:

1. 使用glob()方法搜索:

file_list = glob.glob('path/to/directory/*.ext')

上述代码中,'path/to/directory/'是目标文件夹的路径,'*.ext'是要搜索的文件扩展名。调用glob.glob()方法,将返回一个列表,其中包含所有满足搜索条件的文件的路径。

例如,要搜索当前目录中所有扩展名为.txt的文件,可以使用以下代码:

file_list = glob.glob('*.txt')

2. 使用glob2.glob()方法搜索:

file_list = glob2.glob('path/to/directory/**/*.ext')

与glob.glob()不同的是,glob2.glob()方法支持递归搜索。上述代码中,'path/to/directory/'是目标文件夹的路径,'**'表示递归搜索,'*.ext'是要搜索的文件扩展名。调用glob2.glob()方法,将返回一个列表,其中包含所有满足搜索条件的文件的路径。

例如,要递归搜索当前目录中所有扩展名为.txt的文件,可以使用以下代码:

file_list = glob2.glob('**/*.txt')

下面是一个完整的使用例子,演示如何使用glob和glob2在Python中搜索具有特定扩展名的文件:

import glob
import glob2

def search_files_with_extension():
    folder_path = input("Enter the folder path: ")
    extension = input("Enter the file extension: ")
    
    # Using glob.glob() for non-recursive search
    file_list = glob.glob(folder_path + '/*.' + extension)
    print("Files found (non-recursive search):")
    print(file_list)
    
    # Using glob2.glob() for recursive search
    file_list_recursive = glob2.glob(folder_path + '/**/*.' + extension)
    print("
Files found (recursive search):")
    print(file_list_recursive)

search_files_with_extension()

在上述代码中,首先会要求用户输入一个文件夹路径和一个文件扩展名。然后使用glob.glob()和glob2.glob()来进行搜索,并将结果打印出来。

注意,根据不同的操作系统,文件路径的表示方式可能会有所不同。在Windows中,文件路径使用反斜杠(\)作为分隔符,而在Linux和Mac中使用斜杠除(/)作为分隔符。因此,需要根据实际的操作系统进行适当的调整。

总结起来,使用glob和glob2在Python中搜索具有特定扩展名的文件是非常简单的。这两个方法使得文件搜索变得更加方便和灵活,可以根据具体的需求进行递归或非递归的搜索。