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

使用os.listdir获取文件列表出现~$前缀临时文件该如何解决

问题原因

~$ 开头的文件是微软Office软件生成的临时隐藏文件:当你打开对应的Excel/Word/PPT文件时,Office会自动创建该类文件用于存储临时修改、异常恢复数据,文件默认带有隐藏属性,正常关闭目标文件后会被自动删除,若软件异常退出则可能残留。
os.listdir() 会默认返回目录下所有文件/文件夹名称,包括隐藏属性的文件,因此会将这类临时文件纳入返回结果。你遇到的路径报错是因为拼接文件路径时丢失了前缀的~字符,导致路径和实际临时文件路径不符。

解决/规避方法
  • 方案1:直接过滤临时文件
    遍历文件列表时跳过所有~$开头的文件即可,代码示例:
    import os
    path = os.getcwd()
    # 过滤临时文件
    files = [f for f in os.listdir(path) if not f.startswith('~$')]
    
  • 方案2:叠加文件类型校验
    如果仅需要处理特定格式的文件,可以额外增加后缀判断,避免其他无关文件被误处理:
    # 仅保留xlsx格式的正常文件
    files = [f for f in os.listdir(path) if f.endswith('.xlsx') and not f.startswith('~$')]
    
  • 方案3:路径拼接用标准方法
    不要手动拼接文件路径,使用os.path.join()方法自动处理路径分隔符、特殊字符,避免字符丢失的问题:
    for file_name in files:
        full_file_path = os.path.join(path, file_name)
        # 后续读取逻辑直接使用full_file_path
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 10:36:02