加载多个.csv文件时Pandas返回空列表 无报错解决方案求助
问题原因及解决方案
核心原因
glob.glob 方法不会自动解析路径中的波浪号~为用户主目录,导致路径识别错误,无法匹配到任何csv文件,所以最终返回空列表[]。你单独加载单个csv文件可正常执行,大概率是因为单文件加载时你使用了完整绝对路径,或者pandas的read_csv方法会自动处理路径扩展。
修正方案
第一步:路径展开
使用os.path.expanduser先对带波浪号的路径进行解析,转换为系统可识别的绝对路径。
第二步:路径拼接(可选但推荐)
使用os.path.join拼接路径和匹配规则,避免不同操作系统的路径分隔符差异问题。
修正后代码
import glob import pandas as pd import os # 展开波浪号路径为绝对路径 path = os.path.expanduser("~/Desktop/PubMed/Corpus") # 拼接路径与匹配规则,兼容大小写可修改为 *.[Cc][Ss][Vv] files = glob.glob(os.path.join(path, "*.csv")) # 调试用:先打印匹配到的文件列表确认是否正确 print("匹配到的文件:", files) dfs = [pd.read_csv(f, header=None) for f in files] print(dfs)
其他排查点
如果修正后还是匹配不到文件,可以按以下顺序排查:
- 确认路径拼写完全正确,macOS、Linux系统对路径大小写敏感,
corpus和Corpus会被识别为不同路径 - 确认目标目录下的csv文件后缀为小写
.csv,如果是大写.CSV,可以将匹配规则改为*.[Cc][Ss][Vv]兼容所有大小写组合 - 手动打印展开后的路径,打开该路径确认确实存在csv文件
内容的提问来源于stack exchange,提问作者msa
相关产品推荐
相关产品推荐

