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

如何用Python 3.6检索主文件夹中子文件夹内指定文件的路径?

Python 3.6 获取指定文件名的所有文件路径的简便方法

嘿,这个需求我平时处理得挺多的,用Python 3.6完全可以轻松搞定,给你两种实用又简便的实现方式:

方法一:用os.walk()遍历目录树

os.walk()是Python标准库自带的工具,能递归遍历目标文件夹下的所有子目录和文件,灵活性很强。

import os

# 替换成你的主文件夹实际路径
root_dir = "/your/main/folder/path"
target_file = "summary.txt"
found_paths = []

# 遍历目录树
for current_dir, _, file_list in os.walk(root_dir):
    if target_file in file_list:
        # 拼接完整文件路径
        full_path = os.path.join(current_dir, target_file)
        found_paths.append(full_path)
        print(full_path)

# 如果需要后续处理,直接用found_paths列表就行
# print("所有找到的路径:", found_paths)

简单解释下:os.walk()每次迭代会返回三个值——当前遍历的文件夹路径、该文件夹下的子目录列表(这里用_忽略了)、该文件夹下的所有文件名。我们只需要检查目标文件名是否在当前文件夹的文件列表里,是的话就用os.path.join()拼接出完整路径,存起来或者直接打印都可以。

方法二:用glob.glob()递归匹配(更简洁)

从Python 3.5开始,glob模块就支持递归查找了,Python 3.6当然没问题,这种写法更简洁,几行代码就能搞定。

import glob

root_dir = "/your/main/folder/path"
# 构造匹配模式:**表示任意层级的子文件夹
search_pattern = f"{root_dir}/**/summary.txt"

# recursive=True开启递归查找
found_paths = glob.glob(search_pattern, recursive=True)

# 打印所有结果
for path in found_paths:
    print(path)

这里的**是通配符,配合recursive=True就能遍历所有子目录,直接返回所有符合条件的文件完整路径,非常省心。

小提示

  • 如果你用的是Windows系统,路径可以写成原始字符串(比如r"C:\Your\Main\Folder")或者用双反斜杠\\,避免转义问题
  • 如果需要处理大量文件,两种方法效率差不多,os.walk()适合中途加额外过滤条件(比如只找某个日期之后的文件),glob胜在简洁
  • 两种方法都是Python标准库,不需要额外安装第三方包,直接用就行

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 06:40:07