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

Python处理邮件统计时split()拆分不全触发列表索引超出范围如何解决

错误原因
  • 前缀匹配规则写错:代码中使用line.startswith('From: ')做判断,匹配的是带冒号的发件人行,这类行格式固定为From: 邮箱地址,用split()拆分后仅包含2个元素,自然不存在索引为2的元素,触发list index is out of range报错。
  • 需求要求匹配的是不带冒号的From开头的行,即你提供的样本行格式From stephen.marquard@uct.ac.za Sat Jan 5 09:14:16 2008,这类行拆分后至少有7个元素,索引2对应的就是星期信息。
修复方法
  1. 修改前缀匹配规则,将'From: '改为'From '(注意From后面带空格,避免匹配到类似Fromxxxx这类不符合规则的行)
  2. 可选优化:增加拆分后列表的长度判断,避免极端场景下的索引越界问题

修复后代码如下:

file1 = open('short.txt')
counts = dict()
for line in file1:
    line = line.rstrip()
    # 修改匹配规则为不带冒号的From开头
    if not line.startswith('From '):
        continue
    splited = line.split()
    # 加长度校验更稳妥
    if len(splited) < 3:
        continue
    day = splited[2]
    counts[day] = counts.get(day, 0) + 1
print('Count of days:', counts)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 00:54:02