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

生成器始终返回相同值:逐行读文件的生成器调用异常排查

问题分析与解决方法

问题根源

每次调用tokenize_each_line()都会生成一个全新的生成器实例,每次都会重新打开文件并从头读取,所以每次next()拿到的都是文件第一行的结果。

正确用法

你需要先将生成器实例保存到变量中,之后对同一个实例调用next(),才能依次获取后续行:

# 先创建生成器实例并保存
line_generator = tokenize_each_line("你的文件路径.txt")
# 逐次调用next获取各行
print(next(line_generator))  # 第一行的单词列表
print(next(line_generator))  # 第二行的单词列表
print(next(line_generator))  # 第三行的单词列表

如果要遍历所有行,用for循环更安全(无需手动处理StopIteration异常):

line_generator = tokenize_each_line("你的文件路径.txt")
for tokens in line_generator:
    print(tokens)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.22 18:33:11