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

使用Python如何搜索文件夹中的所有文件?

发布时间:2023-06-24 16:25:08

使用Python搜索文件夹中的所有文件可以基于两个库:os和pathlib。os library模块是Python标准库的一部分,它提供了一个平台无关的封装文件系统的功能,可以进行文件和目录操作。pathlib是Python 3.4中加入的新标准库,提供了面向路径的类的实现,可以完成文件和目录操作等功能。

1. 使用os模块搜索文件夹中的所有文件

使用os库进行文件搜索,需要先指定要搜索的文件夹路径,可以通过os.listdir()函数列出目录中的所有文件和子目录:

import os

path = 'C:/Users/user/Documents'
for filename in os.listdir(path):
    print(filename)

由于os.listdir()函数列出的是文件夹中的所有文件和子目录的名称,我们可能需要使用os.path.join()函数来获取文件的完整路径。这个函数接受多个参数,将这些参数连接成一个路径字符串。

为了搜索文件夹中的所有文件,我们可以使用os.walk()函数。os.walk()函数是一个生成器,它可以递归地遍历目录树,并返回每个目录中的文件和子目录的名称。在每次迭代中,使用os.path.join()方法来获取每个文件的完整路径。然后可以根据扩展名或其他条件来过滤文件并对其进行处理。以下是一个例子:

import os

path = 'C:/Users/user/Documents'

for subdir, dirs, files in os.walk(path):
    for file in files:
        filepath = os.path.join(subdir, file)
        if filepath.endswith('.txt'):
            with open(filepath, 'r') as f:
                print(f.read())

这个例子使用os.walk()函数遍历文件夹中的所有文件和子目录。os.walk()生成器返回三个值:当前目录的路径,当前目录中的子目录列表,当前目录中的文件列表。

对于每个文件,我们使用os.path.join()函数获取完整路径,并使用endswith()方法检查文件是否以.txt结尾。如果是,则打开文件并读取内容。

2. 使用pathlib库搜索文件夹中的所有文件

pathlib库提供了更加面向对象的路径操作方式,也可以轻松地遍历目录树来搜索文件夹中的所有文件。

为了使用pathlib库来搜索文件夹中的所有文件,我们需要使用Path类来表示路径。Path类还提供了许多实用方法来快速实现目录和文件操作。以下是一个例子:

import pathlib

path = pathlib.Path('C:/Users/user/Documents')

for file in path.rglob('*.txt'):
    with open(file, 'r') as f:
        print(f.read())

这个例子使用Path类的rglob()方法递归地遍历file文件夹中的所有文件,其中'*.txt'通配符指定只搜索以.txt结尾的所有文件。

在每个迭代中,我们打开文件并读取其内容。

结论

在Python中使用os或pathlib库可以轻松地搜索文件夹中的所有文件,这些库提供了一些方便的方法来实现文件系统操作。为了搜索文件,可以使用os.listdir()和os.walk()函数或者pathlib.Path类的rglob()方法。无论使用哪种方法,都可以根据文件的扩展名或其他条件过滤文件并对其进行处理。