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

遍历目录为多CSV文件创建独立DataFrame的问题

解决目录及子文件夹CSV文件生成独立DataFrame的问题

看起来你遇到的FileNotFoundError大概率是路径处理不完整导致的——比如你只存了CSV的文件名,而没有拼接上文件所在的完整目录路径,Pandas自然找不到文件啦。我来给你分享两种靠谱的解决方案,其中用pathlib的方式是目前Python处理文件路径的最优实践。

方法一:用pathlib(推荐,简洁可靠)

pathlib是Python 3.4+内置的路径处理库,语法更直观,能自动处理跨平台路径问题,还能一键遍历所有子目录的CSV文件。我们用字典来存储每个DataFrame,这样比两个列表更不容易出错,还能方便地通过文件名访问对应的DF。

import pandas as pd
from pathlib import Path

# 替换成你的目标目录路径(可以是相对路径或绝对路径)
target_dir = Path("./your_target_directory")

# 用字典存储所有DataFrame,键是文件名(不带.csv后缀),值是对应的DataFrame
df_collection = {}

# 遍历目录及所有子目录下的.csv文件
for csv_path in target_dir.rglob("*.csv"):
    # 获取文件名(去掉后缀)作为DataFrame的标识名
    df_name = csv_path.stem
    try:
        # 直接传入完整路径的Path对象,Pandas能正确识别
        df = pd.read_csv(csv_path)
        df_collection[df_name] = df
        print(f✅ 成功读取: {csv_path.name} → DataFrame: {df_name}")
    except Exception as e:
        print(f❌ 读取失败 {csv_path}: {str(e)}")

# 之后访问DataFrame示例:df_collection["sales_report_2024"]

方法二:用os.walk(兼容旧版本Python)

如果你还在使用Python 3.4之前的版本,可以用os.walk来遍历目录,核心是一定要拼接完整的文件路径,而不是只存文件名。

import pandas as pd
import os

target_dir = "./your_target_directory"
df_collection = {}

# 遍历目录树
for root, _, files in os.walk(target_dir):
    for file in files:
        if file.endswith(".csv"):
            # 拼接完整路径:根目录 + 文件名
            full_file_path = os.path.join(root, file)
            df_name = os.path.splitext(file)[0]
            try:
                df = pd.read_csv(full_file_path)
                df_collection[df_name] = df
                print(f✅ 成功读取: {file} → DataFrame: {df_name}")
            except Exception as e:
                print(f❌ 读取失败 {full_file_path}: {str(e)}")

为什么你的原方法会报错?

你之前的思路里,test列表可能只存了CSV的文件名(比如data.csv),而不是完整路径(比如./subfolder/data.csv)。当你用pd.read_csv(file)时,Pandas会在当前工作目录下查找这个文件,而不是文件实际所在的子目录,所以就抛出了FileNotFoundError。

额外建议

  • 尽量用字典存储DataFrame,而不是动态创建全局变量(比如globals()[name] = df),这样能避免命名冲突,也更方便管理所有DataFrame。
  • 加上异常处理,可以快速定位哪个文件读取失败(比如文件损坏、编码问题等)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.19 09:23:48