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

使用os.walk()遍历目录时遇到.DS_Store文件报错如何解决?

可行解决方法

报错核心原因有两个:一是macOS会自动在目录下生成隐藏的.DS_Store系统文件,会被os.walk()正常扫描到;二是操作文件时大概率没有拼接当前遍历的根路径,直接用了文件名导致路径不匹配。可以按以下任意一种方案处理:

  • 方案1:直接过滤.DS_Store文件(最适配当前场景)
    在获取到files列表后直接剔除.DS_Store,不需要对这类系统文件执行重命名操作,修改后的代码如下:
for path, subdirs, files in os.walk(folder_path):
    # scroll_count = 1
    # panel_count = 1
    files.sort()
    # 新增过滤逻辑
    files = [f for f in files if f != '.DS_Store']
    # 后续你的重命名逻辑
  • 方案2:操作文件时拼接完整路径(解决路径不匹配问题)
    很多时候报错是因为直接用f作为文件路径,没有拼接当前遍历的目录路径path,导致程序找不到对应文件,正确的文件路径写法如下:
import os
for path, subdirs, files in os.walk(folder_path):
    files.sort()
    for f in files:
        # 必须拼接完整路径才能正确定位文件
        full_file_path = os.path.join(path, f)
        # 后续用full_file_path执行重命名等操作
  • 方案3:通用过滤所有隐藏文件(适配更复杂的场景)
    如果需要同时过滤掉所有.开头的macOS系统隐藏文件,可以扩展过滤逻辑:
for path, subdirs, files in os.walk(folder_path):
    files.sort()
    # 过滤所有以.开头的隐藏文件
    files = [f for f in files if not f.startswith('.')]
    # 后续业务逻辑

补充说明:.DS_Store是macOS Finder用来存储文件夹视图属性、图标位置等信息的隐藏文件,只要用Finder打开过的目录都会自动生成,不需要对这类文件执行业务操作,直接过滤即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 10:36:07