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

Python遍历指定文件夹内.txt文件报错:提示文件未找到

解决遍历txt文件时的“文件未找到”问题

问题根源

  • 缺少文件夹路径:你构造的file变量只有文件名,没带上kepler_data_c03的路径,Python会默认在脚本当前目录找文件,而非目标文件夹内。
  • 编号与实际文件不匹配:len(os.listdir("kepler_data_c03"))只能拿到文件总数,但没法保证文件是从file_1.txt开始连续编号的,可能存在编号断层、起始号不对的情况。
  • range范围错误:range(1, len(...))的结束值是文件总数,会漏掉最后一个编号的文件(比如总数6000的话,range到6000实际只循环到5999)。

正确处理方式

方式一:直接遍历文件夹内所有txt文件(推荐)

不用依赖文件编号,直接遍历目标文件夹里的.txt文件,彻底避开编号不匹配的坑:

import os

folder_path = "kepler_data_c03"
for filename in os.listdir(folder_path):
    if filename.endswith(".txt"):
        # 拼接完整路径,适配不同系统的路径分隔符
        full_path = os.path.join(folder_path, filename)
        # 这里写你的文件处理逻辑,比如打开文件
        with open(full_path, 'r') as f:
            content = f.read()
            # ...后续操作

方式二:必须按编号遍历(确认文件连续编号时用)

如果确定文件是file_1.txt到file_6000.txt连续编号,补全路径并修正range范围:

import os

folder_path = "kepler_data_c03"
# 直接指定编号范围,覆盖所有6000个文件
for i in range(1, 6001):
    filename = f"file_{i}.txt"
    full_path = os.path.join(folder_path, filename)
    # 先检查文件是否存在,避免报错
    if os.path.exists(full_path):
        with open(full_path, 'r') as f:
            # 处理文件内容
            pass
    else:
        print(f"文件 {full_path} 不存在")

额外提示

  • 用os.path.join()拼接路径,能自动适配Windows和Linux的路径分隔符,避免手动写斜杠出错。
  • 调试时可以先打印几个full_path,确认路径是否指向kepler_data_c03文件夹里的正确文件。

内容的提问来源于stack exchange,提问作者alex.b

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.26 18:58:25