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

Python中函数内读取CSV仅输出首行,函数外正常的问题咨询

问题分析与解决方法

你的函数只输出第一行的核心原因是:return line写在了for循环内部。当第一次循环拿到第一行数据时,return会直接终止函数并返回这一行,循环后续的迭代完全没机会执行,所以只能得到第一行结果。

而把代码移出函数后,没有return语句打断循环,for循环会完整遍历CSV文件的每一行,自然能正常输出所有内容。

几种修正方案:

方案1:收集所有行后一次性返回

适合需要拿到所有数据进行后续处理的场景:

import csv  # 注意要先导入csv模块

def reader(x):
    with open(x,'r') as f:
        csv_reader = csv.reader(f)
        all_lines = []
        for line in csv_reader:
            all_lines.append(line)
        return all_lines

print(reader('scores.csv'))

方案2:在循环内直接打印

如果只是需要打印所有行,不需要返回数据,可以直接在循环里输出:

import csv

def reader(x):
    with open(x,'r') as f:
        csv_reader = csv.reader(f)
        for line in csv_reader:
            print(line)

reader('scores.csv')

方案3:用生成器逐行返回(适合大文件)

不想一次性加载所有内容到内存时,用yield把函数变成生成器,调用时逐行获取:

import csv

def reader(x):
    with open(x,'r') as f:
        csv_reader = csv.reader(f)
        for line in csv_reader:
            yield line

# 遍历生成器打印每一行
for row in reader('scores.csv'):
    print(row)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.26 18:32:05