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

Python读取海平面原始记录文件并构建时间序列的方法求助

解决方法

你遇到的AttributeError: 'list' object has no attribute 'split'错误,大概率是直接对readlines()返回的行列表调用了split()方法——但split()是字符串专属方法,列表不能直接用它,得逐行处理每个字符串才行。

下面是适合新手的完整可运行代码,每一步都加了注释:

import math

# 初始化存储时间序列的空列表
sea_level_data = []

# 打开文件(替换成你的实际文件路径)
with open('sea_level_records.txt', 'r') as f:
    # 逐行读取文件内容
    for line in f:
        # 去除每行首尾的空白字符(比如换行符、多余空格)
        cleaned_line = line.strip()
        # 跳过空行,避免处理无效数据
        if not cleaned_line:
            continue
        # 按分号分割每行数据,得到各列的字符串列表
        columns = cleaned_line.split(';')
        # 提取第一列,转成浮点型年份(strip()去掉列前后的空格)
        year = float(columns[0].strip())
        # 提取第二列,转成浮点型海平面值
        level = float(columns[1].strip())
        # 把标记为缺失值的-99999替换成Python标准的NaN
        if level == -99999:
            level = math.nan
        # 将这组数据添加到结果列表
        sea_level_data.append([year, level])

# 打印前5条数据验证结果
print(sea_level_data[:5])

关键细节说明:

  • 用with open(...)语句会自动关闭文件,不用手动写f.close(),更安全省心
  • 分割前必须用strip()处理每行和每个列的空白,不然你的数据里分号前后的空格会导致转浮点报错
  • 跳过空行能避免因文件末尾或中间的空行引发的索引错误
  • math.nan是Python官方认可的缺失值表示,后续如果用 pandas 做数据分析也能直接兼容

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.25 15:32:07