python怎么遍历一个文件夹里面所有的文件_Python遍历子文件夹

python怎么遍历一个文件夹里面所有的文件_Python遍历子文件夹在 Python 中 遍历文件夹中的每个文件可以通过多种方法实现 以下是几种常见的方法 方法一 使用 os walk 函数 os walk 函数可以递归地遍历文件夹及其子文件夹 并返回一个生成器 每次迭代时返回一个组 包含当前文件夹路径 子文件夹列表和文件列表 pythonimport os def traverse folder folder path for root

在Python中,遍历文件夹中的每个文件可以通过多种方法实现,以下是几种常见的方法:

方法一:使用`os.walk()`函数

`os.walk()`函数可以递归地遍历文件夹及其子文件夹,并返回一个生成器,每次迭代时返回一个组,包含当前文件夹路径、子文件夹列表和文件列表。

python

import os

def traverse_folder(folder_path):

for root, dirs, files in os.walk(folder_path):

for file in files:

file_path = os.path.join(root, file)

处理文件,例如打印文件路径

print(file_path)

folder_path = 'path/to/folder' 指定要遍历的文件夹路径

traverse_folder(folder_path)

方法二:使用`os.listdir()`函数

`os.listdir()`函数返回指定路径下的所有文件和文件夹的列表,但不会递归遍历子文件夹。

python

import os

def list_files(folder_path):

files = os.listdir(folder_path)

for file in files:

file_path = os.path.join(folder_path, file)

if os.path.isfile(file_path): 检查是否为文件

处理文件,例如打印文件路径

print(file_path)

folder_path = 'path/to/folder' 指定要遍历的文件夹路径

list_files(folder_path)

方法三:使用`glob`模块

`glob`模块允许使用通配符匹配文件名,可以方便地找到符合特定模式的文件。

python

import glob

def find_files(folder_path, pattern):

files = glob.glob(os.path.join(folder_path, pattern))

for file in files:

处理文件,例如打印文件路径

print(file)

folder_path = 'path/to/folder' 指定要遍历的文件夹路径

pattern = '*.py' 例如,查找所有.py文件

find_files(folder_path, pattern)

方法四:使用`fnmatch`模块

`fnmatch`模块允许使用通配符匹配文件名,可以方便地找到符合特定模式的文件。

python

import os

import fnmatch

def find_files_fnmatch(folder_path, pattern):

for root, dirs, files in os.walk(folder_path):

for file in files:

if fnmatch.fnmatch(file, pattern): 使用fnmatch进行模式匹配

file_path = os.path.join(root, file)

处理文件,例如打印文件路径

print(file_path)

folder_path = 'path/to/folder' 指定要遍历的文件夹路径

pattern = '*.py' 例如,查找所有.py文件

find_files_fnmatch(folder_path, pattern)

以上方法都可以用来遍历文件夹中的每个文件,你可以根据具体需求选择合适的方法。需要注意的是,对于大型文件夹,`os.walk()`可能会占用较多内存,因为它需要将所有文件都存储在内存中。在这种情况下,可以考虑使用流式读取文件内容的方法,例如使用`open()`函数配合`for line in file:`循环来逐行读取文件内容。

编程小号
上一篇 2026-03-18 18:51
下一篇 2026-03-18 18:43

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://sigusoft.com/bj/71745.html