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

如何用Python找到文本文件中指定车型后读取其下一行数据

问题分析与解决方案

你的代码无法获取对应续航数值的核心问题有两个:

  1. 文件指针位置错误:使用cars.read()会一次性读取整个文件内容,此时文件指针已移动到文件末尾,后续调用cars.readline()只能读到空字符串。
  2. 未定位车型的具体行:仅判断车型是否存在于文本中,没有找到车型所在的具体行位置,无法关联到下一行的续航数据。

修正方案一:逐行遍历匹配

这种方式直接逐行读取文件,找到目标车型后立即读取下一行的续航数据:

with open('cars.txt', 'r') as cars:
    target_car = input("Enter full name of car: ")
    car_found = False
    for line in cars:
        # 去除行尾换行符,避免匹配时受空白字符干扰
        current_car = line.strip()
        if current_car == target_car:
            # 读取下一行的续航数据
            range_percent = next(cars).strip()
            print(f"Found: {current_car}")
            print(f"每1%电量可行驶英里数: {range_percent}")
            car_found = True
            break
    if not car_found:
        print("未找到该车型")

修正方案二:存入列表后索引定位

先将文件内容转为非空行的列表,通过索引直接获取对应续航数据:

with open('cars.txt', 'r') as cars:
    # 过滤空行并去除每行的换行符
    car_data = [line.strip() for line in cars if line.strip()]
    target_car = input("Enter full name of car: ")
    try:
        # 找到目标车型在列表中的索引
        car_index = car_data.index(target_car)
        # 续航数据在车型的下一个位置
        range_percent = car_data[car_index + 1]
        print(f"Found: {target_car}")
        print(f"每1%电量可行驶英里数: {range_percent}")
    except ValueError:
        print("未找到该车型")

原代码问题拆解

  • cars.read()读取完整文件后,文件指针到达末尾,后续readline()无法读取到有效内容。
  • check in car仅做存在性判断,没有定位到车型的具体行,无法关联后续的续航数据行。

内容的提问来源于stack exchange,提问作者Daily stuff And things

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.07 01:11:11