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

使用os.listdir()遍历CSV文件并转换为Pandas DataFrame时遭遇FileNotFoundError的求助

问题分析与解决方案

嘿,这个问题我之前也碰到过!原因很简单——os.listdir()返回的只是目标目录里的纯文件名,不是完整的文件路径。当你直接把这个文件名传给pd.read_csv()时,Python会默认在你运行脚本的当前工作目录里找文件,而不是你指定的C:/PA_Boundaries/Tests/目录,这就导致了FileNotFoundError。

下面给你两种靠谱的解决方法:

方法一:用os.path.join()拼接完整路径

这是最经典的处理方式,能兼容不同操作系统的路径分隔符:

import pandas as pd
import os
dir_name = 'C:/PA_Boundaries/Tests/'
dfs = []
for file in os.listdir(dir_name):
    # 拼接目录和文件名,生成完整路径
    full_file_path = os.path.join(dir_name, file)
    # 额外加个判断,只处理CSV文件,避免目录或其他格式文件干扰
    if full_file_path.endswith('.csv'):
        df = pd.read_csv(full_file_path)
        dfs.append(df)
print(dfs)

方法二:用pathlib模块(Python 3.4+推荐)

pathlib是Python标准库中更现代化的路径处理工具,代码更简洁,还能直接过滤CSV文件:

import pandas as pd
from pathlib import Path
dir_name = Path('C:/PA_Boundaries/Tests/')
dfs = []
# 直接匹配目录下所有CSV文件
for csv_file in dir_name.glob('*.csv'):
    df = pd.read_csv(csv_file)
    dfs.append(df)
print(dfs)

额外提示

如果你的目标目录里还有子文件夹,os.listdir()会把文件夹名也列出来,这时候不加判断就会报错。所以上面两种方法里的过滤逻辑(endswith('.csv')或glob('*.csv'))能帮你避开这个坑。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.30 07:18:13