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

如何用Python读取文件夹多文本文件?遇FileNotFoundError求解决

解决FileNotFoundError:读取文件夹内文本文件的正确姿势

嘿,这问题我太熟了——你踩了相对路径和完整路径混淆的坑!

问题根源

os.listdir(path) 返回的仅仅是目标文件夹里的文件名,比如 '0106_Car_vehicles_part_falls_on_the_roadway.txt',但当你直接用 open(fle) 时,Python会在当前工作目录(不是你指定的 path 文件夹)里找这个文件,自然就找不到啦。

修复方案:拼接完整文件路径

你已经尝试了用 os.path.join(),这里给你补全完整的可运行代码,确保每一步都正确:

import os

# 注意:这里的path必须是文件夹路径!如果你的News_txt.txt是文件夹的话
path = "MyNews_AccidentDataset/News_txt.txt"
all_files = os.listdir(path)
new_list = []

for fle in all_files:
    # 拼接文件夹路径和文件名,得到完整的文件路径
    full_file_path = os.path.join(path, fle)
    # 打开文件时使用完整路径,建议指定编码避免乱码/读取失败
    with open(full_file_path, encoding="utf-8") as f:
        text = f.read()
        new_list.append(text)

额外优化:用pathlib更简洁(Python3.4+)

如果你用的是较新的Python版本,推荐用 pathlib 模块,它的路径处理更直观,还能自动过滤非txt文件:

from pathlib import Path

# 同样确保path是文件夹路径
path = Path("MyNews_AccidentDataset/News_txt.txt")
new_list = []

# 遍历文件夹下的所有txt文件
for txt_file in path.glob("*.txt"):
    with open(txt_file, encoding="utf-8") as f:
        new_list.append(f.read())

小提醒

  • 一定要确认你的 path 是文件夹路径,不是单个文件的路径!如果 News_txt.txt 是单个文件,那你之前的 os.listdir() 本身就会报错,这点要检查清楚。
  • 加上 encoding="utf-8" 可以避免很多因为文件编码不一致导致的读取错误。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.13 08:47:46