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

如何删除Mac上的.DS_Store文件并解决pandas读取CSV的UnicodeDecodeError

解决Mac下.DS_Store文件导致的CSV合并报错

报错根因

你遇到的UnicodeDecodeError是因为 macOS 会自动在目录下生成隐藏的.DS_Store文件存储文件夹视图配置,os.listdir()会读取到这个非CSV文件,pandas尝试用UTF-8解码二进制配置文件就会抛出编码错误。

方法1:删除当前目录已有的.DS_Store文件

打开终端,先切换到你的销售数据目录:

cd /Users/georgezambrano/Desktop/Code/Sales_Data

执行删除命令,仅删除目录内所有.DS_Store文件,不影响其他CSV数据:

find . -name ".DS_Store" -type f -delete

方法2:禁止该目录后续自动生成.DS_Store(可选)

如果不想后续再出现同类问题,执行以下命令禁止访达在该目录生成.DS_Store,之后重启访达生效:

defaults write com.apple.desktopservices DSDontWriteNetworkStores -bool true
killall Finder

方法3:代码层面过滤(更推荐,无需修改系统配置)

直接修改待处理文件列表的生成逻辑,仅筛选后缀为.csv的文件,从根源上避免读取到非CSV文件,哪怕后续目录新增其他无关文件也不会报错,修改后的代码如下:

import pandas as pd
import os

# 仅筛选csv文件
files = [file for file in os.listdir('/Users/georgezambrano/Desktop/Code/Sales_Data') if file.endswith('.csv')] 

all_months_data = pd.DataFrame()

for file in files:
    df = pd.read_csv("/Users/georgezambrano/Desktop/Code/Sales_Data/"+file)
    all_months_data = pd.concat([all_months_data, df])

# head方法建议放在循环外执行,避免每次拼接都重复打印前5行
all_months_data.head()

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 03:06:01