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

Python split()在while循环中不生效,拆分文本行生成列表出现死循环

问题根源

死循环由判断条件逻辑错误导致:

  • 文件读取到末尾时,infile.readline() 会返回空字符串''
  • 对空字符串依次执行.strip().split()后,会得到空列表[]
  • 你设置的while循环判断条件为goals_line != '',空列表和空字符串的比较结果永远为真,因此程序进入无限循环,持续打印空列表。

修正方案

改法1:仅修改循环判断条件(改动最小)

利用Python中空列表的布尔值为False的特性,直接判断列表是否非空即可:

with open(HOTSPUR, 'r') as infile:
    goals_line = infile.readline().strip().split()
    print(goals_line)
    
    while goals_line:
        goals_line = infile.readline().strip().split()
        print(goals_line)

改法2:直接迭代文件对象(更符合Python规范的写法)

Python的文件对象本身是可迭代对象,不需要手动调用readline即可逐行读取内容,代码更简洁:

with open(HOTSPUR, 'r') as infile:
    for line in infile:
        goals_line = line.strip().split()
        print(goals_line)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 03:18:01