You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

Python遍历目录CSV文件代码无输出问题求助

解决批量读取目录下CSV文件无输出的问题

你好呀,我来帮你排查这个问题~你说单个指定文件能正常读取,但遍历INDEX_DIR目录下的CSV文件时既没有输出也没报错,这大概率是文件路径拼接错误导致的!

问题根源

os.listdir(INDEX_DIR)返回的只是目录里的纯文件名(比如2000Q1.csv),而不是完整的文件路径。当你直接用open(filename)时,Python会在当前工作目录里查找这个文件,而不是你指定的INDEX_DIR目录——相当于程序根本没找到目标文件,自然不会执行后续的读取逻辑,也不会触发错误(因为你只判断了文件名后缀,没校验文件是否存在)。

修正后的代码

os.path.join()把目录路径和文件名拼接成完整路径就可以解决问题啦,这个方法还能自动适配Windows/macOS/Linux的路径分隔符,非常稳妥:

import os
import csv

sec_urls = []
INDEX_DIR = "./index"  # 替换成你的实际目录路径

for filename in os.listdir(INDEX_DIR):
    if filename.endswith('.csv'):
        # 拼接完整文件路径
        full_path = os.path.join(INDEX_DIR, filename)
        # 可选:打印正在处理的文件,方便排查
        print(f"正在处理文件: {full_path}")
        with open(full_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, '已下载并添加到列表')

额外小建议

  • 加上len(line) >= 5的判断,能避免某些CSV行数据不完整时,出现IndexError索引越界的错误。
  • 可以先打印full_path确认路径是否正确,这样能快速排查是否还有路径相关的问题。

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

火山引擎 最新活动