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

从文件夹文本文件创建DataFrame报FileNotFoundError WinError3如何解决

问题根因

  • 路径拼接不兼容:统计文件数量的代码未硬编码路径分隔符,可被系统正常识别;后续读取代码手动拼接了正斜杠/作为分隔符,Windows系统默认使用反斜杠\作为路径分隔符,无法识别拼接后的非法路径,触发文件不存在报错。
  • 未过滤非目录项:os.listdir()会返回目标路径下所有文件、文件夹的名称,若根目录../data/hr/下存在独立文件,直接将其作为子目录遍历也会触发同类报错。
  • 代码逻辑遗漏:提供的读取代码未定义cv_data变量,路径问题修复后仍会触发名称错误。

解决方案

使用os.scandir()替代os.listdir()实现路径遍历,自动适配系统路径分隔符,同时过滤非目录、非文件项,完整可运行代码如下:

import os
import pandas as pd

path_folder_cvs = '../data/hr/'
all_cvs_data = []

# 遍历根目录筛选子文件夹
for dir_entry in os.scandir(path_folder_cvs):
    if not dir_entry.is_dir():
        continue
    category = dir_entry.name
    # 遍历子文件夹下的所有文件
    for file_entry in os.scandir(dir_entry.path):
        if not file_entry.is_file():
            continue
        # 读取文本内容,可根据实际文件编码调整encoding参数
        with open(file_entry.path, 'r', encoding='utf-8', errors='ignore') as f:
            file_content = f.read()
        all_cvs_data.append({
            'category': category,
            'file_name': file_entry.name,
            'content': file_content
        })

# 生成DataFrame
df_cvs = pd.DataFrame(all_cvs_data)
print(df_cvs.head(2))

优化说明

  • 原生适配多系统路径规则,无需手动拼接分隔符,避免Windows系统路径识别错误
  • 自动过滤非目录、非文件条目,避免无效遍历触发报错
  • 新增编码容错处理,兼容不同编码格式的文本文件读取
  • 输出的DataFrame包含分类、文件名、文件内容三个字段,完全匹配需求

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 00:54:01