You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Python的os.walk()无法获取子文件夹中.txt文件名的问题求助

获取指定路径下所有子文件夹中的.txt文件问题解答

原代码为什么返回空结果?

next(os.walk(path))仅读取指定路径本身的目录信息,不会递归遍历子文件夹:

  • next(os.walk(path))[1]返回当前路径下的子文件夹列表,所以能得到正确结果
  • next(os.walk(path))[2]返回当前路径下的直接文件列表,而你的.txt文件都在子文件夹里,因此返回空。

正确实现方法

方法1:用os.walk递归遍历所有目录

import os

path = r'C:\test\2017\QTR1'
txt_files = []

# 遍历所有子目录和文件
for root, _, files in os.walk(path):
    for file in files:
        if file.endswith('.txt'):
            # 拼接完整文件路径
            txt_files.append(os.path.join(root, file))

print("所有.txt文件:", txt_files)

方法2:用glob模块简洁实现

glob支持递归匹配,代码更简洁:

import glob
import os

path = r'C:\test\2017\QTR1'
# ** 匹配所有子目录,recursive=True开启递归
txt_files = glob.glob(os.path.join(path, '**', '*.txt'), recursive=True)

print("所有.txt文件:", txt_files)

内容的提问来源于stack exchange,提问作者Ciercy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.15 21:34:54