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

Python遍历目录CSV文件时触发FileNotFoundError的求助

解决批量处理CSV文件时的FileNotFoundError问题

我一眼就发现问题所在啦——你代码里的变量名不一致,直接导致了路径拼接错误!

问题根源

你定义的目录变量是directory = '/Users/nicolacornforth/index',但在os.path.join()里却误用了未定义的INDEX_DIR变量,这就导致程序生成了错误的文件路径(比如错误信息里的./index/2007Q2.csv,完全不是你实际的绝对路径),自然找不到目标文件。

另外给你提个小建议:处理文件时尽量用绝对路径避免相对路径的坑,还可以加个文件判断,防止误处理子目录。

修正后的代码

import os
import csv

sec_urls = []
directory = '/Users/nicolacornforth/index'

for filename in os.listdir(directory):
    # 确保是.csv文件,且是文件而非子目录
    if filename.endswith('.csv'):
        file_path = os.path.join(directory, filename)
        if os.path.isfile(file_path):
            with open(file_path, newline='') as csvfile:
                reader = csv.reader(csvfile, delimiter=',')
                for line in reader:
                    # 增加判断避免行数据不完整导致索引越界
                    if len(line) >= 5:
                        url = line[4].strip()
                        sec_urls.append(url)
                        print(url, 'downloaded and added to list')

额外优化说明

  • 新增len(line)>=5的判断,防止某些CSV行数据缺失导致IndexError
  • 用file_path变量存储拼接后的完整路径,代码逻辑更清晰
  • 加入os.path.isfile()判断,避免误处理文件夹中的子目录

这样修改后,应该就能正常批量处理所有CSV文件啦!

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.14 09:12:56