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

如何遍历子文件夹并读取任意文件名的.csv后缀文件

问题原因

  • 直接用folder / '*.csv'是把通配符当做普通文件名拼接路径,不会触发通配符匹配逻辑,无法找到对应文件
  • 额外逻辑错误:你需要读取csv格式文件,却调用了pd.read_excel()方法,接口不匹配也会导致读取失败

修正代码

使用Path对象自带的glob()方法实现后缀名匹配,同时修改对应读取接口即可:

import pandas as pd
from pathlib import Path

folder_names = []
spreadsheet_contents = []
all_data = pd.DataFrame()
current_directory = Path.cwd()

for folder in current_directory.iterdir():
    # 跳过当前目录下的文件,只遍历子文件夹
    if not folder.is_dir():
        continue
    folder_names.append(folder.name)
    # 匹配当前子文件夹下所有后缀为.csv的文件
    for csv_file in folder.glob('*.csv'):
        # 若确认每个子文件夹只有1个csv,可直接用 csv_file = next(folder.glob('*.csv')) 取第一个匹配结果
        df = pd.read_csv(csv_file, skiprows = 1, header = None, usecols = [5])
        spreadsheet_contents.append(df)

# 如需合并所有读取结果到all_data,可打开下方注释
# all_data = pd.concat(spreadsheet_contents, ignore_index=True)

补充说明

  • 如果你的csv是Excel导出的特殊编码文件,读取时可新增encoding参数解决乱码问题,常用参数值为gbk、utf-8-sig
  • 如果需要匹配子文件夹下多级目录的csv文件,可将glob('*.csv')替换为rglob('*.csv')实现递归匹配

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 01:36:01