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

Python按ID查询文本文件中对应项目全部关联信息的实现方法

问题分析

你现有代码的问题是仅会打印匹配到ID的单行内容,无法输出同项目的其他关联字段,同时存在模糊匹配缺陷,比如输入1会同时匹配到ID为1、11、101的项目。

调整后代码

pick = input("Enter id: ").strip()
found = False

with open("Inputdetails.txt", "r", encoding="utf-8") as file:
    for line in file:
        # 精确匹配目标ID行,避免模糊匹配误判
        if line.startswith("Id: ") and line.split(": ")[1].strip() == pick:
            found = True
        # 遇到空行说明当前项目内容结束,终止打印
        if found and line.strip() == "":
            break
        # 匹配到目标项目后打印当前行
        if found:
            # 输出自带两个空格前缀,符合你期望的格式
            print(f"  {line}", end="")

# 可选:添加ID不存在的提示
if not found:
    print(f"未找到ID为 {pick} 的项目")

逻辑说明

  • 提前获取用户输入并去除首尾空格,避免输入时多余空格导致匹配失败
  • 用found标记位控制打印状态,默认不打印任何内容
  • 仅当行以Id: 开头、且冒号后的数值和输入完全一致时,才开启打印标记
  • 开启打印后遇到空行即判定当前项目结束,直接终止循环,避免打印其他项目内容
  • 打印时加end=""是因为读取的行本身自带换行符,避免重复输出多余空行

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 15:15:03