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

Python遍历文件夹获取指定扩展名文件路径失败求助

排查文件遍历失败的原因及解决方法

针对你的问题,以下是几个核心排查方向和解决步骤:

1. 起始路径错误(最常见原因)

你的代码中os.walk("Assignment8")的起始路径和实际文件夹结构不匹配,后续修改的Desktop/python 2/FOLDER也可能存在路径格式问题:

  • 相对路径问题:如果main.py在FOLDER文件夹内运行,当前工作目录默认是FOLDER,此时应该用"./"(遍历当前目录及子目录)或"contents"(仅遍历contents子目录)作为起始路径,而非Assignment8。
  • 绝对路径格式错误:若使用绝对路径,需根据系统补全完整路径:
    • Mac/Linux:"/Users/你的用户名/Desktop/python 2/FOLDER"
    • Windows:r"C:\Users\你的用户名\Desktop\python 2\FOLDER"(用原始字符串避免转义问题)
  • 验证当前工作目录:在函数开头添加print(os.getcwd()),确认运行代码时的实际工作目录,再调整起始路径。

2. 文件扩展名参数不匹配

file.endswith(file_extension)是严格匹配的:

  • 若要找.txt文件,必须传入参数".txt",而非"txt"。如果传"txt",yob1880.txt的结尾是.txt,不会被匹配到。

3. 调试代码确认遍历过程

在代码中添加调试输出,明确遍历到的目录和文件,快速定位问题:

import os

def retrieve_files(file_extension):
    file_paths = []
    print("当前工作目录:", os.getcwd())
    # 先以当前目录为起始路径测试
    for root, dirs, files in os.walk("."):
        print(f"遍历目录: {root} | 包含文件: {files}")
        for file in files:
            if file.endswith(file_extension):
                file_paths.append(os.path.join(root, file))
    return file_paths

# 调用示例(确保扩展名带点)
print(retrieve_files(".txt"))

运行后查看输出,就能知道是否遍历到了contents/baby_names目录,以及目标.txt文件是否在文件列表中。

4. 排除权限问题(少见但需注意)

如果文件夹位于系统受保护目录,可能存在读取权限限制,但Desktop下的文件夹一般不会有这个问题,可暂时排除。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.28 12:50:08