python3遍历文件夹下文件

本文介绍了如何使用os.walk()函数遍历Python3中的文件夹及其子文件夹,包括获取文件夹路径、文件夹名称和文件名称。通过示例展示了该函数如何递归遍历目录结构。
import os

work_dir = "data/"
for parent, dirnames, filenames in os.walk(work_dir):
        for filename in filenames:
            file_path = os.path.join(parent, filename) # 得到文件的绝对/相对路径

重点在 os.walk(work_dir) 这个函数上,它返回3个参数:

parent - 该文件夹路径(即work_dir),这里输入的参数既可以是绝对路径,也可以是相对路径

dirnames - list,work_dir下的文件夹名称

filenames - list,work_dir下的文件名称

值得注意的是,这里的for循环其实标志os.walk 不只会返回仅仅一个文件夹下的文件,而是会迭代返回该文件夹下子文件的内容,比如work_dir底下还有两个子文件夹,那么这里for循环就会返回3个结果,第一个parent为work_dir,第二个parent为work_dir下的子文件夹1,第三个parent为work_dir下的子文件夹2。

 


下面我们看个例子:

假设 当前文件夹的结构 如下:

| example/

| test/

### Python 使用 `glob` 模块遍历文件夹下的所有文件 `glob` 是 Python 自带的一个用于匹配路径名模式的模块,可以用来查找符合特定条件的文件[^1]。通过组合不同的通配符(如 `*`, `?`),能够实现灵活的文件筛选。 以下是使用 `glob` 模块遍历文件夹下所有文件的示例代码: ```python import glob # 查找当前目录及其子目录中的所有 .txt 文件 file_list = glob.glob('**/*.txt', recursive=True) for file_path in file_list: print(file_path) ``` 上述代码中,参数 `'**/*.txt'` 表示递归地查找当前目录及其所有子目录中扩展名为 `.txt` 的文件[^2]。如果希望查找其他类型的文件,只需修改通配符部分即可。例如,要查找所有的 PNG 图像文件,则可改为 `'**/*.png'`。 当需要统计不同文件后缀的数量时,可以通过如下方式完成: ```python import os from collections import defaultdict def count_file_extensions(directory): extension_count = defaultdict(int) for root, dirs, files in os.walk(directory): # 遍历目录及其子目录 for file in files: _, ext = os.path.splitext(file) # 获取文件扩展名 if ext: # 如果有扩展名则计数 extension_count[ext.lower()] += 1 return dict(extension_count) directory_to_search = '.' # 当前目录作为示例 result = count_file_extensions(directory_to_search) for ext, count in result.items(): print(f"{ext}: {count}") ``` 此代码片段展示了如何结合 `os.walk()` 和字典结构来统计各种文件后缀的数量。虽然这里主要依赖于 `os` 模块而非纯 `glob` 实现,但它同样适用于复杂场景的需求。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值