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

如何将文本文件中的行分配给不同类型变量?地铁线路数据存储

解决地铁线路文件读取与类型转换问题

直接上解决方案,核心思路是逐行处理,区分数字行和站点行:

  1. 先读取文件所有行,过滤掉空行(防止文件末尾或中间的空行干扰)
  2. 遍历行列表,遇到能转成整数的行,就把它作为当前线路的站点数量,然后取下一个对应数量的行作为站点
  3. 用合适的数据结构存储,比如列表嵌套字典,方便后续调用

代码示例(Python)

subway_lines = []

# 读取文件内容,替换成你的实际文件路径
with open('subway.txt', 'r', encoding='utf-8') as f:
    # 读取所有行并过滤空行、去除首尾空白符
    lines = [line.strip() for line in f if line.strip()]

index = 0
while index < len(lines):
    # 尝试将当前行转为整数(线路站点数)
    try:
        station_count = int(lines[index])
        # 截取对应数量的站点行
        stations = lines[index+1 : index+1+station_count]
        # 存入结构化数据
        subway_lines.append({
            'station_count': station_count,
            'stations': stations
        })
        # 索引跳至下一条线路的起始位置
        index += station_count + 1
    except ValueError:
        # 格式异常处理(文件格式正确时不会触发)
        print(f"无效的线路起始行:{lines[index]}")
        index += 1

# 验证结果
for line in subway_lines:
    print(f"站点数:{line['station_count']}")
    print(f"站点列表:{line['stations']}")
    print("---")

关键说明

  • 用strip()处理每行,清除换行符和首尾空格,避免空行干扰
  • 通过try-except判断数字行,比直接判断字符是否为数字更稳妥(兼容可能的正整数格式)
  • 用while循环配合索引跳转,跳过已处理的站点行,处理效率更高

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.14 09:25:19