利用glob2和glob()在Python中搜索具有特定扩展名的文件
在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中搜索具有特定扩展名的文件是非常简单的。这两个方法使得文件搜索变得更加方便和灵活,可以根据具体的需求进行递归或非递归的搜索。
