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

Python读取CSV遇FileNotFoundError:文件夹路径传递及代码修复咨询

问题分析与代码修复

你遇到的FileNotFoundError核心原因是读取文件时仅传入了文件名,而非完整文件路径——os.listdir()返回的只是文件夹内的文件名,Python无法直接定位到文件位置。除此之外,你的代码还存在循环缩进错误、变量逻辑混乱等问题,以下是完整修复方案:

修复后的完整代码

import os
import pandas as pd

def clean_files(input_folder_path, output_folder_path):
    # 获取文件夹下所有CSV文件
    csv_list = [file for file in os.listdir(input_folder_path) if file.endswith('.csv')]
    
    # 初始化列表存储所有清洗后的DataFrame
    cleaned_df_list = []
    
    # 遍历每个CSV文件进行处理
    for file in csv_list:
        # 生成完整文件路径
        file_path = os.path.join(input_folder_path, file)
        # 读取CSV文件
        df = pd.read_csv(file_path)
        # 移除前5行数据
        cleaned_df = df.iloc[5:]
        # 将清洗后的DataFrame加入列表
        cleaned_df_list.append(cleaned_df)
        
        # 生成输出文件路径
        output_file_path = os.path.join(output_folder_path, f"cleaned_{file}")
        # 保存清洗后的文件
        cleaned_df.to_csv(output_file_path, index=False)
        
        # 打印清洗后的结果
        print(f"清洗后的文件 {file}:\n{cleaned_df}\n")
    
    return cleaned_df_list

关键修复点说明

  • 文件路径修复:使用os.path.join(input_folder_path, file)拼接完整路径,确保Python能正确找到目标文件
  • 循环逻辑修正:将读取、清洗、保存的代码放到for file in csv_list循环内部,保证每个文件都被逐一处理
  • 变量名规范:将存储清洗后DataFrame的列表命名为cleaned_df_list,避免与单个文件的DataFrame变量df混淆
  • 移除错误操作:删除了无效的df.append(df)(会重复追加当前DataFrame)和重复的列表追加操作
  • 输出路径保护:使用output_file_path存储最终输出路径,避免覆盖传入的output_folder_path参数

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.30 15:46:05