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

使用os.walk()遍历文件时文件名随机损坏的问题求助

排查与优化你的文件查找代码

首先,我注意到你的代码里有几个容易踩的小坑,先帮你梳理下:

  • 忘记导入依赖模块:你的代码用到了os和fnmatch,但没有显式导入,这会直接导致运行报错,记得在代码开头加上:

    import os
    import fnmatch
    
  • 路径分隔符的兼容性问题:你用root,"\\", filename来打印路径,这在Windows上没问题,但在Linux/macOS系统下会显示成不规范的格式,建议统一用os.path.join来拼接后打印,保证跨平台兼容:

    print(os.path.join(root, filename))
    
  • 代码简化优化:你可以用列表推导式来简化Final_List的生成,让代码更简洁:

    Final_List = [os.path.join(root, filename) 
                  for root, _, files in os.walk(rootPath) 
                  for filename in fnmatch.filter(files, pattern)]
    

如果调试时遇到找不到文件、路径错误这类问题,可以从这几个方向排查:

  • 确认rootPath是正确的相对/绝对路径,你可以先打印os.path.abspath(rootPath)看看实际指向的目录是不是你预期的
  • 检查pattern是否符合fnmatch的匹配规则,比如如果文件名里有特殊字符,可能需要调整匹配模式
  • 确认目标文件夹里确实存在带MATCH的文件,且当前运行代码的用户有访问该文件夹的权限

修正后的完整代码示例:

import os
import fnmatch

# Define folder and pattern to find
rootPath = "./root_folder"
pattern = "*MATCH*"

# Look for all the files with "MATCH" on its file name
Final_List = []
for root, dirs, files in os.walk(rootPath):
    for filename in fnmatch.filter(files, pattern):
        full_path = os.path.join(root, filename)
        Final_List.append(full_path)
        print(full_path)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.21 07:36:00